Enthält Informationen-Tabelle ID-Spalte in Master-Detail-Beziehung enthalten?
-
19-09-2019 - |
Frage
Im Master-Detail-Beziehungen, tun Detail Tabellen-ID-Spalten enthalten?
Oder sollte es?
In Northwind-Datenbank ist nicht Orderdetail eine ID-Spalte hat.
Lösung
Jede Datentabelle, die Sie haben, enthält etwas, das Sie in der Lage sein wollen, immer abrufen sollte einen Primärschlüssel enthalten - das ist es Hauptaufgabe:. Eindeutig identifizieren eine einzelne Zeile
Nur weil die Details zu einem Master-Reihe gehören, bedeutet nicht, dass sie nicht die volle Datenzeilen selbst sind -. Sie müssen in irgendeiner Weise identifizierbar sein
Also ja - ich würde jedes Detail Tabelle empfehlen, irgendeine Form eines Primärschlüssels ( „ID“) zu haben. Ob das irgendwie mit der Master-ID oder nicht, ist etwas, das Sie auf einer Fall-zu-Fall-Basis entscheiden könnten -. Aber es war ein Weg, um jedes Detail Reihe unabhängig irgendwie zu identifizieren
Wenn Sie eine Link-Tabelle für eine M haben: N-Beziehung, in der Regel, dann werden Sie nur haben die beiden Fremdschlüsselspalte (für Tabellen 1 und 2) in dort. Das ist in der Regel gut genug, da die Kombination dieser beiden FK einzigartig ist.
Der einzige Grund, eine separate ID zu einer solchen Tabelle hinzuzufügen wäre, wenn Sie Zusatzinformationen hinzufügen müssen, die die Beziehung per se beschreiben. Aber selbst dann, solange die (Taste 1, 2) Kombination einzigartig ist, dass ist in der Regel gut genug.