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

Mô hình hóa dữ liệu cho các bảng giống nhau có cùng cột

Chỉ vì dữ liệu có cấu trúc tương tự không có nghĩa là nó có cùng ý nghĩa hoặc các ràng buộc giống nhau. Giữ các bảng tra cứu của bạn riêng biệt. Điều này giữ khóa ngoại riêng biệt, do đó, cơ sở dữ liệu có thể tự bảo vệ khỏi tham chiếu sai loại dữ liệu tra cứu.

Tôi ước các DBMS quan hệ được hỗ trợ kế thừa, nơi bạn có thể xác định cấu trúc cơ bản trong bảng mẹ và chỉ cần thêm các FK cụ thể trong các bảng con. Như hiện tại, bạn sẽ cần phải chịu đựng một số lần lặp lại trong DDL của mình ...

LƯU Ý:Một ngoại lệ từ quy tắc "giữ các bảng tra cứu riêng biệt" có thể là khi hệ thống của bạn cần phải động (tức là có thể thêm các loại dữ liệu tra cứu mới mà không thực sự tạo bảng vật lý mới trong cơ sở dữ liệu), nhưng có vẻ như vậy từ câu hỏi của bạn.

Với một bảng tra cứu lớn, chỉ FK sẽ không dừng lại (ví dụ) ShippingLog bảng từ tham chiếu một hàng dành cho EmployeeTask bàn. Bằng cách sử dụng xác định các mối quan hệ và di chuyển PK, bạn có thể bảo vệ mình khỏi điều này, nhưng không phải là không đưa ra một số điểm dư thừa và cần một số ràng buộc cẩn thận. Sẽ rõ ràng hơn và có lẽ hiệu quả hơn khi chỉ cần làm đúng và giữ các bảng tra cứu riêng biệt.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nội bộ của bảy loại máy chủ SQL - Phần 1

  2. Toán tử OR Ngắn mạch trong SQL Server

  3. Chức năng tùy chỉnh với ràng buộc kiểm tra SQL Server 2008

  4. Chuyển loại bảng do người dùng xác định giữa cơ sở dữ liệu SQL Server

  5. Làm cách nào để sử dụng tính năng xóa theo tầng với SQL Server?