Referenzierungstabelle und referenzierte Tabelle

9

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?

    
abruski 11.11.2011, 14:46
quelle

5 Antworten

8

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.

    
abruski 29.02.2012, 14:38
quelle
4

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.

    
onedaywhen 11.11.2011 15:17
quelle
2

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.

    
bpgergo 11.11.2011 14:52
quelle
1

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.

    
Cyrille 04.05.2012 14:30
quelle
0

Ein Land kann viele Abrechnungen haben, daher ist die Landtabelle die referenzierte Tabelle und die Abrechnungstabelle ist die referenzierende Tabelle. Ich weiß nicht über Pflichtfeld.

    
Bytemain 11.11.2011 15:16
quelle