Nếu tôi khai báo bảng dưới đây, nó ngầm ngụ ý rằng cả khóa ngoài tạo khóa chính duy nhất hoặc tôi có cần phải làm gì khác để tạo cả hai thuộc tính làm khóa chính không?SQL Nhiều Phím Nước ngoài là Khóa Chính
CREATE TABLE Report_has_Items
(
ReportID int REFERENCES Report(ReportID) NOT NULL,
ItemID int REFERENCES Item(ItemID) NOT NULL
)
Về cơ bản cả hai thuộc tính là khóa ngoài từ các bảng khác, cùng nhau sẽ tạo thành một khóa duy nhất.
Lợi ích của việc đặt tên hạn chế là gì? – Kairan
@Kairan - Một lợi ích chính là, nếu một truy vấn (chèn, cập nhật, xóa) vi phạm một ràng buộc, một thông báo lỗi sẽ được tạo ra với tên ràng buộc. Nếu tên ràng buộc rõ ràng và mô tả, thông báo lỗi sẽ dễ hiểu hơn; nếu tên ràng buộc là ngẫu nhiên, nó sẽ ít rõ ràng hơn. – Gayu
Lý do chính cho tôi là sự nhất quán giữa các môi trường. Tôi là một DBA hỗ trợ. Một phần của công việc đó là di chuyển các thay đổi từ DEV sang QA thành PROD. Tôi sử dụng một công cụ so sánh lược đồ cho việc này. Thật tuyệt nếu các ràng buộc được đặt tên giống nhau sao cho sự khác biệt trong việc đặt tên không bị gắn cờ là sự khác biệt. –