Ich brauche einen Design-Vorschlag von allen Ihnen ExpertenComposite-Primärschlüssel und Fremdschlüssel-Beziehung
Also ich Tabellen wie folgt:
Tabelle 1
(A integer not null
, B char(1) not null
, C integer not null
, D not null
, primary key (A, B, C) i.e. composite key
)
Tabelle 2
(A integer not null
, B char(2) not null
, C integer not null
primary key (A, B,C) composite key
)
Tabelle 3
(A integer not null
, B char(2) not null
, D not null
primary key (A, B, D)
)
Ich mag eine Beziehung zwischen Tabelle 1 und 2 und Tabelle 1 und die Tabelle übergeordnete Tabelle und Tabelle 2 und 3 ist das Kind der Tabelle zu seinem 3.
Tabelle 1 erstellen 1. Ich Beziehung einfach erstellen kann zwischen Tabelle 1 und Tabelle 2, aber ich erhalte einen Fehler, wenn ich versuche, eine Beziehung zwischen 1 und 3 zu erstellen, da der Fremdschlüssel nicht Teil des zusammengesetzten Schlüssels sein kann und der ganze zusammengesetzte Schlüssel sein muss. Ich würde alle Vorschläge sehr schätzen.
Nun ... durch die Definition eines Fremdschlüssels können Sie nicht nur einen Teil des Primärschlüssels verwenden. Nehmen Sie Ihr Beispiel und sagen Sie, dass Sie A als Fremdschlüssel verwenden wollten. Aber es gibt 10 Zeilen in Tabelle1 mit diesem Wert. Zu welcher Zeile gehört der Fremdschlüssel? Es ergibt keinen logischen Sinn. Vielleicht, wenn Sie Ihre Situation mit einer Bedeutung anstelle von Tabelle1, ColA erklären könnten, können wir helfen. –
Einige Spaltentypen darin fehlen - wird DDL tatsächlich ausgeführt? –
Wenn Sie einen "UNIQUE" -Index zu Tabelle 1 für die Spalten A, B, D hinzufügen, können diese drei Spalten als Fremdschlüssel für Tabelle 3 verwendet werden ... Wenn diese drei in T1 nicht eindeutig sind, dann bilden sie kein a * Schlüssel * in der Tabelle, daher können sie kein Fremdschlüssel in einer anderen Tabelle sein. – user1429080