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

Cách tốt nhất cho khóa chính trong bảng là gì?

Tôi tuân theo một số quy tắc:

  1. Các khóa chính phải nhỏ đến mức cần thiết. Thích kiểu số hơn vì kiểu số được lưu trữ ở định dạng nhỏ gọn hơn nhiều so với định dạng ký tự. Điều này là do hầu hết các khóa chính sẽ là khóa ngoại trong một bảng khác cũng như được sử dụng trong nhiều chỉ mục. Khóa của bạn càng nhỏ, chỉ mục càng nhỏ, bạn sẽ sử dụng càng ít trang trong bộ nhớ đệm.
  2. Các khóa chính không bao giờ được thay đổi. Cập nhật khóa chính nên luôn nằm ngoài câu hỏi. Điều này là do nó có nhiều khả năng được sử dụng trong nhiều chỉ mục và được sử dụng làm khóa ngoại. Cập nhật một khóa chính duy nhất có thể gây ra hiệu ứng gợn sóng của các thay đổi.
  3. KHÔNG sử dụng "khóa chính của sự cố" làm khóa chính của mô hình logic của bạn. Ví dụ:số hộ chiếu, số an sinh xã hội hoặc số hợp đồng của nhân viên vì những "khóa tự nhiên" này có thể thay đổi trong các tình huống thực tế. Đảm bảo thêm các ràng buộc DUY NHẤT cho những ràng buộc này khi cần thiết để thực thi tính nhất quán.

Đối với khóa thay thế và khóa tự nhiên, tôi tham khảo các quy tắc ở trên. Nếu khóa tự nhiên nhỏ và không bao giờ thay đổi, nó có thể được sử dụng làm khóa chính. Nếu khóa tự nhiên lớn hoặc có khả năng thay đổi, tôi sử dụng các khóa thay thế. Nếu không có khóa chính, tôi vẫn tạo khóa thay thế vì kinh nghiệm cho thấy bạn sẽ luôn thêm các bảng vào lược đồ của mình và ước gì bạn đặt khóa chính.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. T-SQL:Xóa tất cả các hàng trùng lặp nhưng giữ lại một hàng

  2. Tạo lớp từ bảng cơ sở dữ liệu

  3. INT so với Mã nhận dạng duy nhất cho trường ID trong cơ sở dữ liệu

  4. Nhật ký giao dịch SQL Server, Phần 3:Khái niệm cơ bản về ghi nhật ký

  5. SQL Server:Mặt tối của NVARCHAR