sql >> Databáze >  >> RDS >> Sqlserver

Datové modelování pro stejné tabulky se stejnými sloupci

To, že data mají podobnou strukturu, neznamená, že mají stejný význam nebo stejná omezení. Udržujte své vyhledávací tabulky oddělené. Tím zůstanou cizí klíče oddělené, takže se databáze může chránit před odkazováním na nesprávný druh vyhledávacích dat.

Přál bych si, aby relační DBMS podporovaly dědičnost, kde byste mohli definovat základní strukturu v nadřazené tabulce a pouze přidat konkrétní FK v podřízených tabulkách. Jak to teď stojí, budete muset vydržet nějaké opakování ve vašem DDL...

POZNÁMKA:Jedna výjimka z pravidla „uchovávat vyhledávací tabulky odděleně“ může být, když váš systém potřebuje být dynamický (tj. musí být schopen přidávat nové druhy vyhledávacích dat, aniž by bylo nutné vytvářet nové fyzické tabulky v databázi), ale nezdá se, že by daleko od vaší otázky.

S jednou velkou vyhledávací tabulkou samotné FK nezastaví (například) ShippingLog tabulka z odkazu na řádek určený pro EmployeeTask stůl. Pomocí identifikace vztahů a migrace PK se před tím můžete chránit, ale ne bez zavedení některých nadbytečností a potřeby pečlivého omezení. Je čistší a pravděpodobně výkonnější jednoduše dělat správnou věc a udržovat vyhledávací tabulky oddělené.



  1. mySQL se dvakrát připojí ke stejné tabulce

  2. Je možné provést ROLLBACK ve spouštěči MySQL?

  3. Spuštění uložené procedury z crontab

  4. jak zvýšit hodnotu datetime s hodnotou přírůstku jako 30 minut v oracle?