Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Моделиране на данни за същите таблици с едни и същи колони

Това, че данните имат подобна структура, не означава, че имат същото значение или същите ограничения. Съхранявайте справочните таблици отделно. Това запазва чужди ключове отделни, така че базата данни да може да се предпази от препращане към грешен вид данни за търсене.

Иска ми се релационни СУБД да поддържат наследяване, където можете да дефинирате основната структура в родителската таблица и просто да добавите конкретни FK в дъщерните таблици. Както е сега, ще трябва да изтърпите известно повторение във вашия DDL...

ЗАБЕЛЕЖКА:Едно изключение от правилото „съхранявайте справочните таблици отделно“ може да бъде, когато вашата система трябва да бъде динамична (т.е. да можете да добавяте нови видове справочни данни, без всъщност да създавате нови физически таблици в базата данни), но не изглежда така далеч от въпроса ви.

С една голяма справочна таблица само FK няма да спрат (например) ShippingLog таблица от препратка към ред, предназначен за EmployeeTask маса. Като използвате идентифициращи връзки и мигриращи PK, можете да се предпазите от това, но не и без въвеждане на някои излишъци и необходимост от внимателно ограничаване. По-чисто и вероятно по-производително е просто да направите правилното нещо и да запазите справочните таблици отделно.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Създайте/добавете таблица със сбор от стойности, групирани в различни категории

  2. Създайте двоичен низ от нули с променлива дължина

  3. Как да конвертирате от един формат на дата в друг в Microsoft SQL сървър?

  4. Текстът, ntext и графичните данни> типовете не могат да се сравняват или сортират, освен когато се използва оператор IS NULL или LIKE>

  5. Използване на колона, извлечена от функция за класиране в клауза where (SQL Server 2008)