Frage

Ich mache einige FK Analyse unserer Tabellen durch einen gerichteten machen Graph, der Abhängigkeiten FK und dann die Verfahrbewegung Graph. In meinem Code, nenne ich alles gerichtete Graphen mit Terminologie, aber ich möchte etwas ein bisschen mehr haben "Benutzerfreundlich" in dem Bericht.

In diesem Szenario:

create table t1(a varchar2(20));
alter table t1 add constraint t1_fk foreign key(a) references t2(b);

t1.a muss existieren in t2.b. Also, was Worte sollte ich die Lücken?

t1 is the _______ of t2.
t2 is the _______ of t1.

Viele TIA!

War es hilfreich?

Lösung

Ich würde sagen, (Dinge zwischen Klammern sind optional, aber ich würde sie benutzen)

[Column a of] table t1 references [column b of] table t2

und

[Column b of] table t2 is referenced by [column a of] table t1

Ich würde auch die Aktion angeben, die auf Lösch- / Update passiert, wenn jeder.

Column b of table t2 is referenced by column a of table t1. 
Deleting a record in table t2 will delete matching records on table t1

Andere Tipps

t1 is the parent of t2.
t2 is the child of t1.

Was ist das Publikum für diese? Wenn es Menschen gibt, die ein relationales Schema verstehen, dann wird das wohl tun. Wenn es technisch nicht versierte Menschen ist, dann in der Regel habe ich in meinem Modellierungswerkzeug (ERWin) die Bedeutung der Beziehungen dokumentierte spezifisch.

InvoiceLineItem is a part of Invoice.
Invoice has one or more InvoiceLineItems.

Oder:

User must belong to a Business.
Business has zero or more Users.

würde ich etwas entlang der Linien von

sagen
t1 is the master of t2. An ID must be in t1, before it can be mentioned in t2.
t2 is the slave of t1. It cannot refer to an ID that does not exist in t1.

Die meisten nicht-technische Menschen die Master / Slave-Terminologie sehr intuitiv erfassen wird.

Sie können die folgenden Satz Form annehmen:

  • Jede t1 Zeile muss genau eine t2 Reihe verknüpft werden
  • Jede t2 Reihe mit einer beliebigen Anzahl von t1 Reihen verbunden sein können, oder keine

In dem erläuterten Szenario denke ich, dass die richtige Benennung sein sollte (technisch gesehen):
t2is die Eltern von t1
t1 ist das Kind von t2

Die Tabelle der eingeschränkten Spalte heißt Kind , während die Tabelle der referenzierten Spalte genannt wird Eltern .

Persönlich mag ich diese Benennung, in SQL Server, wenn Sie für die sys.foreign_keys abfragen sehen das Kind Tabelle parent_object_id genannt wird, während die referenzierte Tabelle referenced_object_id .. aus der Sicht der Beschränkung genannt wird selbst könnte richtig sein. ., aber am Ende das ist sehr verwirrend.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top