Ich versuche, eine Viele-zu-viele-Beziehung zwischen der gleichen Tabelle in SQL Server zu erstellen.Kaskade löschen auf Viele-zu-viele zwischen derselben Tabelle
Ich habe eine Tabelle Object
mit Spalten ObjectId
und Name
.
Die Beziehung folgt diesen Regeln:
- ein Kind viele Eltern
- Eltern viele Kinder
- ObjectA kann ein Kind von ObjectB und ObjectB kann ein Kind von ObjectA haben haben kann
- sondern ein Objekt kann kein direktes Kind von selbst
So erstelle ich eine zweite Tabelle sein ObjectRelation
mit Spalten ParentId
und ChildId
und natürlich möchte ich diese Beziehungen durch Kaskade gelöscht werden.
Aber wenn ich dies in SQL Server versuchen, erhalte ich die Fehler
Einführung FOREIGN KEY-Einschränkung ‚FK_ObjectRelation_Object1‘ auf dem Tisch ‚tblADMembership‘ kann Zyklen oder mehrere Kaskadenwege verursachen. Geben Sie ON DELETE NO ACTION oder ON UPDATE NO ACTION an, oder ändern Sie andere FOREIGN KEY-Einschränkungen.
In SQL Server Compact bekomme ich
Die Referenzbeziehung in einer zyklischen Referenz führen wird, die nicht erlaubt ist.
Ich habe einige der Forschung getan, und ich verstehe, warum ich diese Fehler, aber ist es eine Möglichkeit, dies zu umgehen, die auch auf SQL Server Compact arbeiten (also keine Stored Procedures)? Oder gibt es eine bessere Möglichkeit, diese Beziehung zu modellieren?