sql >> Database >  >> RDS >> Sqlserver

Een beperking waardoor slechts één van de twee tabellen kan verwijzen naar een basistabel

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.


  1. MySQL - Fix Error - WordPress Database Error Dubbele invoer voor sleutel PRIMAIR voor query INSERT INTO wp_options

  2. Een willekeurig getal genereren binnen een opgegeven bereik in SQLite

  3. Kopieer sqlite in Android Studio-items werkt niet

  4. Draaitabelquery's automatiseren in MySQL