Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Một ràng buộc chỉ cho phép một trong hai bảng tham chiếu đến một bảng cơ sở

Ràng buộc KIỂM TRA với UDF (đó là câu trả lời của Oded) không mở rộng quy mô tốt và có tính đồng thời kém. Xem những điều này:

  • Các UDF vô hướng được bao bọc trong các ràng buộc CHECK rất chậm và có thể không thành công đối với các bản cập nhật nhiều lần
  • Tony Rogerson

Vì vậy:

  • tạo một bảng mới, giả sử TableA2XY
  • cột này có PK của TableA và cột char (1) có CHECK để cho phép mã vạch X hoặc Y. Và cũng có một ràng buộc duy nhất đối với PK của A.
  • tableX và tableY có cột char (1) mới với dấu kiểm để chỉ cho phép X hoặc Y tương ứng
  • tableX và tableY có FK thành TableA2XY trên cả hai cột

Đây là phương pháp superkey hoặc subtype

  • dựa trên tất cả DRI
  • không có trình kích hoạt
  • không có udfs nào có quyền truy cập bảng trong ràng buộc KIỂM TRA.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Định cấu hình thư cơ sở dữ liệu trong SQL Server

  2. Các loại con trỏ máy chủ SQL - Chỉ chuyển tiếp con trỏ động | Hướng dẫn sử dụng SQL Server / TSQL

  3. Hiểu tầm quan trọng của cài đặt bộ nhớ trong SQL Server

  4. Đang đợi localhost, mãi mãi!

  5. Khắc phục sự cố từ chối truy cập đang chờ xử lý phục hồi cơ sở dữ liệu SQL