Rekursive Fremdschlüssel Problem
In meinem DB-design, brauche ich eine Tabelle mit rekursive Fremdschlüssel-relation, d.h. der Fremdschlüssel bezieht sich auf die gleiche Tabelle. Wenn ich versuche es mit einer Spalte funktioniert es einwandfrei, aber wenn ich zwei Spalten gibt es einen Fehler. Unten ist der Beispiel-code und die daraus resultierenden Fehler. Ihre Hilfe wird sehr geschätzt werden.
CREATE TABLE categories (
categoryID integer ,
parentID integer ,
setID integer REFERENCES categories(categoryID,parentID),
name char(255) NOT NULL,
PRIMARY KEY(categoryID,parentID)
);
FEHLER: Anzahl der referenzierenden und referenzierten Spalten für Fremdschlüssel nicht einverstanden
Wenn ich
setID integer REFERENCES categories(categoryID) and
PRIMARY KEY(categoryID)
dann gibt es keinen Fehler, aber das ist nicht das, was ich will.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Möchten Sie wahrscheinlich diese:
Konsultieren Sie die Handbuch über die syntax.
Beantworten, follow-up-Frage im Kommentar:
Dem Ziel eines Fremdschlüssel muss irgendeine Art von Eindeutigkeit. Ich zitiere die Handbuch:
Ja, leider, Sie versuchen zu sagen, dass ein numerisches Feld sein soll äquivalent zu zwei numerische Felder. Nicht wirklich passieren wird.
Denken über Ihre Benutzung SetID. Tun Sie es wirklich brauchen?
Statt, sicherzustellen, dass die parentID ist ein Fremdschlüssel, der Kategorie ( z.B. express, dass jeder Wert von parentID BESITZT, zu existieren, als eine entsprechende und vorhandene Wert in parentID ).