Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Modelowanie danych dla tych samych tabel z tymi samymi kolumnami

To, że dane mają podobną strukturę, nie oznacza, że ​​mają to samo znaczenie lub te same ograniczenia. Trzymaj tabele przeglądowe oddzielnie. To zachowuje klucze obce oddzielne, dzięki czemu baza danych może chronić się przed odwoływaniem się do niewłaściwych danych wyszukiwania.

Chciałbym, aby relacyjne DBMS-y wspierały dziedziczenie, w którym można zdefiniować podstawową strukturę w tabeli nadrzędnej i po prostu dodać określone FK w tabelach podrzędnych. W obecnej sytuacji będziesz musiał znieść kilka powtórzeń w swoim DDL...

UWAGA:Jedynym wyjątkiem od reguły „trzymaj tabele odnośników oddzielnie” może być sytuacja, w której system musi być dynamiczny (tj. być w stanie dodawać nowe rodzaje danych odnośników bez faktycznego tworzenia nowych tabel fizycznych w bazie danych), ale nie wygląda to tak droga od twojego pytania.

Przy jednej dużej tabeli odnośników same FK nie zatrzymają (na przykład) ShippingLog tabela z odwoływania się do wiersza przeznaczonego dla EmployeeTask stół. Korzystając z identyfikowania relacji i migrowania PK, możesz się przed tym uchronić, ale nie bez wprowadzania zwolnień i konieczności starannego ograniczania. Czystsze i prawdopodobnie bardziej wydajne jest po prostu właściwe postępowanie i oddzielne oddzielenie tabel wyszukiwania.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dlaczego SET XACT_ABORT ON nie jest zachowaniem domyślnym?

  2. SQL SERVER 2008 POBIERZ OSTATNIO WSTAWIONE WARTOŚCI

  3. SQL Server:Jak uzyskać dostęp do schematów uprawnień?

  4. SQL Server:jak wybrać kontakty pierwszego, drugiego i trzeciego stopnia

  5. Jak wykonać GROUP BY na aliasowanej kolumnie w MS-SQL Server?