sql >> Databasteknik >  >> RDS >> Sqlserver

Datamodellering för samma tabeller med samma kolumner

Bara för att data har liknande struktur betyder det inte att de har samma betydelse eller samma begränsningar. Håll dina uppslagstabeller åtskilda. Detta behåller främmande nycklar separat, så att databasen kan skydda sig från att referera till fel typ av uppslagsdata.

Jag önskar att relationella DBMS:er stödde arv, där du kunde definiera den grundläggande strukturen i den överordnade tabellen och bara lägga till specifika FK:er i de underordnade tabellerna. Som det ser ut nu måste du utstå lite upprepning i din DDL...

OBS:Ett undantag från regeln "håll uppslagstabeller separata" kan vara när ditt system behöver vara dynamiskt (dvs. kunna lägga till nya typer av uppslagsdata utan att faktiskt skapa nya fysiska tabeller i databasen), men det ser inte ut som att långt från din fråga.

Med en stor uppslagstabell stoppar inte FKs ensamma (till exempel) ShippingLog tabell från att referera till en rad avsedd för EmployeeTask tabell. Genom att använda identifierande relationer och migrera PK:er kan du skydda dig från detta, men inte utan att införa några redundanser och behöva lite försiktig begränsning. Det är renare och förmodligen mer presterande att helt enkelt göra rätt och hålla uppslagstabeller åtskilda.



  1. Ändra/återställ postgresql användarlösenord på Windows 7

  2. Syntax för indataparametrar i en MySQL-fråga

  3. Hur man kör ett makro från en navigeringsknapp i Microsoft Access

  4. Hur får jag SQLSRV-tillägget att fungera med PHP, eftersom MSSQL är utfasat?