Sto cercando di creare una relazione molti-a-molti tra la stessa tabella in SQL Server.Eliminazione a cascata su molti a molti tra la stessa tabella
Ho un tavolo Object
con colonne ObjectId
e Name
.
Il rapporto segue queste regole:
- un bambino può avere molti genitori
- un genitore può avere molti figli
- Objecta può essere un bambino di ObjectB e ObjectB può essere figlio di Objecta
- ma un oggetto non può essere un figlio diretto di se stesso
Così ho creare una seconda tabella ObjectRelation
con colonne ParentId
e ChildId
e ovviamente voglio che queste relazioni siano eliminate a cascata.
Ma quando provo questo in SQL Server ottengo l'errore
Introducendo FOREIGN KEY vincolo 'FK_ObjectRelation_Object1' sul tavolo 'tblADMembership' potrebbe causare cicli o più percorsi a cascata. Specificare ON DELETE NO ACTION o ON UPDATE NO ACTION o modificare altri vincoli FOREIGN KEY.
In SQL Server Compact ottengo
Il rapporto referenziale si tradurrà in un riferimento ciclico che non è consentito.
Ho fatto qualche ricerca e ho capito perchè ricevo questi errori, ma c'è un modo per aggirare questo che sarà anche lavorare su SQL Server Compact (quindi niente stored procedure)? O c'è un modo migliore per modellare questa relazione?