Ich versuche Beziehungen zu verstehen und natürlich tauchen Fragen auf.
Was bedeutet referenzierende Tabelle und was bedeutet referenzierte Tabelle? In obigem Beispiel, auf welches verwiesen werden soll und auf welches?
Nehmen wir als Argument an, dass die Tabelle settlements
eine untergeordnete Tabelle ist (die Abrechnung kann ohne ein Land nicht existieren). Soll diese untergeordnete Tabelle referenziert oder referenziert werden?
Ich möchte für eine so kleine Frage keine neue Frage aufwerfen:
Was bedeutet diese Mandatory
Checkbox? Bedeutet dies, dass die Abrechnungstabelle benötigt wird oder dass country_id
benötigt wird? Oder vielleicht etwas anderes?
Eine wirklich gute Erklärung in der PostgreSQL-Dokumentation gefunden.
Nehmen wir an, Sie haben die Produkttabelle, die wir schon mehrmals benutzt haben:
%Vor%Nehmen wir an, Sie haben eine Tabelle, in der die Bestellungen dieser Produkte gespeichert werden. Wir möchten sicherstellen, dass die Auftragstabelle nur Bestellungen von Produkten enthält, die tatsächlich existieren. Daher definieren wir in der Tabelle orders, die auf die Tabelle products verweist, eine Fremdschlüsseleinschränkung:
%Vor%Es ist jetzt unmöglich, Bestellungen mit product_no-Einträgen zu erstellen, die nicht in der products-Tabelle erscheinen.
Wir sagen, dass in dieser Situation die Tabelle orders die referenzierende -Tabelle ist und die products-Tabelle die referenzierte -Tabelle ist. Ebenso gibt es referenzierende und referenzierte Spalten.
Die referenzierte Tabelle ist die 'übergeordnete' Tabelle.
Die referenzierende Tabelle ist die 'Kind' Tabelle.
Der Hinweis ist in der SQL DDL z.B.
%Vor%Siedlungen verweisen auf Länder, impliziert Länder wird referenziert.
settlements
table (mit dem Feld country_id) referenziert auf countries
table (das ID-Feld)
Ich nehme an, das obligatorische Kontrollkästchen hat nichts mit der Beziehung zu tun. Es ist einfach eine Nicht-Null-Einschränkung für das Feld. Aber Sie sollten das Benutzerhandbuch von MySQL Workbench zu diesem Thema konsultieren.
Wenn das Kontrollkästchen "Obligatorisch" in generiertem SQL keine Auswirkungen hat, hat dies Auswirkungen auf die Grafik. Wenn diese Option nicht aktiviert ist, können Sie einen kleinen Kreis an der betreffenden Beziehungslinie sehen (für die Beziehungsnotation Krähenfuß).
Es bedeutet, dass der Fremdschlüssel null sein könnte, aka. nicht zwingend erforderlich.
Tags und Links sql mysql database-design foreign-keys