Cuộc tranh luận về khóa tự nhiên so với nhân tạo cũ kỹ như bất kỳ triển khai cơ sở dữ liệu nào. Đọc về chuyên gia và con trên wikipedia.
Đối số cho khóa thay thế có thể dễ dàng bị tranh chấp ở cấp độ lý thuyết (ví dụ: đối số với khóa tự nhiên bạn chạy nguy cơ PK của bạn trở thành không duy nhất có thể phản đối bằng câu trả lời - tốt! nó là tốt mà mọi thứ sẽ phá vỡ thay vì có các khóa chính nhân tạo duy nhất với bản ghi trùng lặp cho dữ liệu thực tế).
Một lý lẽ khác là khóa nhân tạo hoặc là dự phòng (có một khóa duy nhất khác trên bảng) hoặc chúng cho phép bạn lưu trữ các bản ghi không duy nhất về bản chất.
Tuy nhiên, việc tìm kiếm các phím tự nhiên tốt đôi khi rất khó để bạn phải chọn một thứ gì đó nhân tạo và cho phép tình huống khi bạn có một người có cùng tên, sinh vào cùng ngày (hoặc không rõ ngày), với một thuộc tính xy khác có cùng giá trị.
Ngoài ra, nó không phải là như vậy rõ ràng những gì là nhân tạo và những gì là tự nhiên. Bạn có thể nói ví dụ rằng SSN là tự nhiên cho dữ liệu của bạn. Mặc dù nó thực sự là số lượng.
Đối với hiệu suất của các mối quan hệ đa khóa - điều này không tệ như bạn nghĩ, hơn nữa - nó phân đoạn các chỉ mục một cách tự nhiên và với các khóa như vậy, bạn thường kết thúc với một cơ sở dữ liệu các truy vấn phổ biến mà không có bất kỳ chỉ mục bổ sung nào.
Nếu bạn xem xét những vấn đề nghiêm trọng và nếu bạn đang cố gắng để xây dựng hệ thống phức tạp, vui lòng đọc một số tài liệu tốt (C.J.Date Giới thiệu về hệ thống cơ sở dữ liệu, hiện trong phiên bản thứ 8 nói đến cái tâm)
Ý của bạn là: "Nếu điều đó là KHÔNG, thì bạn sẽ cần phải mở rộng ràng buộc duy nhất của bạn ra để bao gồm một cột khác. "? –
Trên thực tế, tôi đã chính xác ban đầu, chỉ phrased kém. Tôi đã sửa chữa. Nếu, trong thực tế, ba cột không phải là duy nhất, thì bạn sẽ cần phải rõ ràng mở rộng ràng buộc duy nhất. – Thomas
Ah! Giờ đã hiểu. Cảm ơn! –