Próbuję utworzyć relację wiele do wielu między tą samą tabelą w programie SQL Server.Usuwanie kaskadowe wielu-do-wielu między tymi samymi tabelami
Mam jedną tabelę Object
z kolumnami ObjectId
i Name
.
Relacja spełnia następujące reguły:
- dziecko może mieć wiele rodziców
- rodzic może mieć wiele dzieci
- ObjectA mogą być dzieckiem objectB i objectB mogą być dzieckiem ObjectA
- ale obiekt nie może być bezpośrednim dzieckiem sama
Więc utworzyć drugą tabelę ObjectRelation
z kolumnami ParentId
i ChildId
i oczywiście chcę, aby te relacje zostały usunięte kaskadowo.
Ale gdy próbuję to w SQL Server pojawia się błąd
wprowadzając klucz obcy ograniczeń „FK_ObjectRelation_Object1” na stole „tblADMembership” może powodować cykli lub wiele ścieżek kaskadowe. Określ ON DELETE NO ACTION lub ON UPDATE NO ACTION lub zmodyfikuj inne ograniczenia klucza OBCEGO.
W SQL Server Compact uzyskać
Relacja referential spowoduje cykliczne odsyłającego wynika, że nie jest dozwolone.
Robiłem rozeznanie i rozumiem, dlaczego mam te błędy, ale czy istnieje sposób wokół to, że będzie również działać na SQL Server Compact (więc nie procedury przechowywane)? Czy istnieje lepszy sposób na modelowanie tej relacji?