Ik heb een database met oa de tabellen "gerbuikers" en "contracten". In de gebruikers tabel staat een veld contractNr, welke een foreign key constraint heeft naar de contracten tabel. In de contracten tabel staat een veld "beheerder", welke een foreign key heeft in de gebruikerstabel.
Dit geeft een circular reference.
Met verwijderen van een contractrecord geeft dit weinig problemen, je geeft alle gebruikers die dat contract gebruiken eerst een ander contractNr, en dan kan het contract prima worden verwijderd. Aanmaken is een ander verhaal, als je een nieuwe user met nieuw contract aan wilt maken. Je kunt de user niet aanmaken omdat er nog geen contract voor is, en geen contract aanmaken omdat de user nog niet bestaat.
Ik wil wel de consistentie van de db bewaken, het is niet acceptabel als een gebruiker een niet bestaand contractnummer heeft, of een contract een niet bestaande beheerder heeft. Hoe los je zoiets op?
Ik vind via google genoeg documentatie over circular foreign keys, maar nergens hoe je zo'n situatie kunt voorkomen.
Dit geeft een circular reference.
Met verwijderen van een contractrecord geeft dit weinig problemen, je geeft alle gebruikers die dat contract gebruiken eerst een ander contractNr, en dan kan het contract prima worden verwijderd. Aanmaken is een ander verhaal, als je een nieuwe user met nieuw contract aan wilt maken. Je kunt de user niet aanmaken omdat er nog geen contract voor is, en geen contract aanmaken omdat de user nog niet bestaat.
Ik wil wel de consistentie van de db bewaken, het is niet acceptabel als een gebruiker een niet bestaand contractnummer heeft, of een contract een niet bestaande beheerder heeft. Hoe los je zoiets op?
Ik vind via google genoeg documentatie over circular foreign keys, maar nergens hoe je zo'n situatie kunt voorkomen.