Khóa thay thế (thường là số nguyên) có giá trị gia tăng giúp quan hệ bảng của bạn nhanh hơn và tiết kiệm hơn về tốc độ lưu trữ và cập nhật (thậm chí tốt hơn, không cần cập nhật khóa ngoại khi sử dụng khóa thay thế, trái ngược với trường khóa doanh nghiệp, điều đó thay đổi ngay bây giờ và sau đó).
Khóa chính của bảng nên được sử dụng để xác định duy nhất hàng, chủ yếu cho mục đích nối. Hãy nghĩ về bảng Người: tên có thể thay đổi và chúng không được bảo đảm là duy nhất.
Hãy nghĩ về các công ty: bạn là một công ty Merkin hạnh phúc khi làm việc với các công ty khác ở Merkia. Bạn đủ thông minh để không sử dụng tên công ty làm khóa chính, vì vậy bạn sử dụng ID công ty duy nhất của chính phủ Merkia trong toàn bộ 10 ký tự chữ và số. Sau đó Merkia thay đổi ID công ty vì họ nghĩ rằng đó sẽ là một ý tưởng tốt. Không sao, bạn sử dụng tính năng cập nhật xếp tầng của công cụ db của bạn, để thay đổi không liên quan đến bạn ngay từ đầu. Sau đó, doanh nghiệp của bạn mở rộng và bây giờ bạn làm việc với một công ty ở Freedonia. Id công ty Freedonia lên đến 16 ký tự. Bạn cần phóng to khóa chính id công ty (cũng là các trường khóa ngoại trong Đơn hàng, Sự cố, MoneyTransifts, v.v.), thêm trường Quốc gia vào khóa chính (cũng trong khóa ngoại). Ôi! Nội chiến ở Freedonia, nó ' S chia thành ba quốc gia. Tên quốc gia của cộng sự của bạn nên được đổi thành tên mới; xếp tầng cập nhật để giải cứu. BTW, khóa chính của bạn là gì? (Quốc gia, CompanyID) hoặc (CompanyID, Quốc gia)? Cái sau giúp tham gia, cái trước tránh một chỉ mục khác (hoặc có lẽ nhiều, nếu bạn muốn Đơn hàng của mình được nhóm theo quốc gia).
Tất cả những điều này không phải là bằng chứng, nhưng một dấu hiệu cho thấy khóa thay thế để xác định duy nhất một hàng cho tất cả các mục đích sử dụng, bao gồm cả hoạt động tham gia, thích hợp hơn là khóa doanh nghiệp.