CHECK-beperkingen met UDF's (wat het antwoord van Oded is) schalen niet goed en hebben een slechte gelijktijdigheid. Zie deze:
- Scalaire UDF's verpakt in CHECK-beperkingen zijn erg traag en kunnen mislukken voor updates met meerdere rijen
- Tony Rogerson
Dus:
- maak een nieuwe tabel, zeg TableA2XY
- dit heeft de PK van TabelA en een kolom char(1) met een CHECK om alleen X of Y toe te staan. En ook een unieke beperking op de PK van A.
- tableX en tableY hebben een nieuwe kolom char(1) met een vinkje om respectievelijk alleen X of Y toe te staan
- tableX en tableY hebben hun FK naar TableA2XY op beide kolommen
Dit is de supersleutel- of subtypebenadering
- allemaal gebaseerd op DRI
- geen triggers
- geen udfs met tabeltoegang in CHECK-beperkingen.