Nếu tôi cần người đại diện, tôi sẽ sử dụng cột IDENTITY hoặc cột GUID tùy thuộc vào nhu cầu về tính duy nhất toàn cầu.
Nếu có khóa chính tự nhiên hoặc khóa chính được xác định là tổ hợp duy nhất của các khóa ngoại khác, thì tôi thường không có IDENTITY, cũng như không sử dụng nó làm khóa chính.
Có một ngoại lệ, đó là các bảng cấu hình chụp nhanh mà tôi đang theo dõi bằng trình kích hoạt kiểm tra. Trong trường hợp này, thường có một "khóa chính" hợp lý (thường là ngày chụp nhanh và khóa tự nhiên của hàng - như một trung tâm chi phí hoặc số tài khoản gl mà hàng là bản ghi cấu hình), nhưng thay vì sử dụng tự nhiên "khóa chính" làm khóa chính, tôi thêm một IDENTITY và tạo khóa chính và tạo một chỉ mục hoặc ràng buộc duy nhất về ngày tháng và khóa tự nhiên. Mặc dù về mặt lý thuyết, ngày tháng và khóa tự nhiên không thay đổi, trong các bảng này, nếu người dùng thực hiện điều đó thay vì thêm hàng mới và xóa hàng cũ, tôi muốn kiểm toán (phản ánh thay đổi đối với hàng được xác định bằng khóa chính của nó) để thực sự phản ánh một sự thay đổi trong hàng - không phải là sự biến mất của một chìa khóa và sự xuất hiện của một cái mới.
Nguồn
2009-06-01 00:34:24
+1 - Tôi thích thông tin bổ sung về GUID được phân phối. Từ kinh nghiệm, đây là chính xác trường hợp nó có thể được dễ dàng hơn bằng cách sử dụng một phím số nguyên. –