Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Ограничение, което позволява само една от двете таблици да препраща към основна таблица

CHECK ограниченията с UDFs (което е отговорът на Oded) не се мащабират добре и имат лош паралелизъм. Вижте тези:

  • Скаларните UDF, обвити в CHECK ограничения, са много бавни и може да не успеят за многоредови актуализации.
  • Тони Роджърсън

И така:

  • създайте нова таблица, кажете TableA2XY
  • това има PK на TableA и колона char(1) с ПРОВЕРКА, за да позволи ony X или Y. И уникално ограничение за PK на A също.
  • tableX и tableY имат нова колона char(1) с отметка, позволяваща само X или Y съответно.
  • tableX и tableY имат своите FK към TableA2XY и в двете колони

Това е подходът на суперключ или подтип

  • всички базирани на DRI
  • няма задействания
  • без udfs с достъп до таблица в ограниченията CHECK.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да предам sqlparameter на IN()?

  2. Как да получите родителска таблица, референтна таблица, име на ограничение на външния ключ и колони в SQL Server - SQL Server / TSQL урок, част 71

  3. Какво е значението на SELECT ... FOR XML PATH(' ),1,1)?

  4. Ред на изпълнение на SQL заявката

  5. Как да коригирате „Име на корелация трябва да бъде посочено за груповия набор от редове в клаузата from.“ в SQL Server