Có nhiều trường phái khác nhau về điều này. Một trường thích bao gồm khóa chính và đặt tên cho bảng liên kết có ý nghĩa quan trọng hơn hai bảng mà nó đang liên kết. Lý do là mặc dù bảng có thể bắt đầu có vẻ giống như một bảng liên kết, nó có thể trở thành bảng riêng của nó với dữ liệu quan trọng.
Ví dụ là số nhiều giữa nhiều tạp chí và người đăng ký. Liên kết thực sự là đăng ký với các thuộc tính riêng của nó, như ngày hết hạn, trạng thái thanh toán, v.v.
Tuy nhiên, đôi khi tôi chỉ là bảng liên kết chỉ là một bảng liên kết. Mối quan hệ nhiều với nhiều loại là một ví dụ điển hình về điều này.
Vì vậy, trong trường hợp này, không cần thiết phải có khóa chính một trường riêng biệt. Bạn có thể có một phím tự động gán, mà sẽ không làm tổn thương bất cứ điều gì, và sẽ làm cho xóa hồ sơ cụ thể dễ dàng hơn. Nó có thể là tốt như một thực hành chung, vì vậy nếu bảng sau đó phát triển thành một bảng quan trọng với dữ liệu quan trọng của nó (như đăng ký) nó sẽ có một khóa tự động gán chính.
Bạn có thể đặt chỉ mục duy nhất trên hai trường để tránh trùng lặp. Điều này thậm chí sẽ ngăn chặn các bản sao nếu bạn có khóa tự động gán riêng. Bạn có thể sử dụng cả hai trường làm khóa chính của bạn (cũng là một chỉ mục duy nhất).
Vì vậy, một trường phái tư tưởng có thể gắn với số nguyên tự động gán khóa chính và tránh các khóa chính ghép. Đây không phải là cách duy nhất để làm điều đó, và có lẽ không phải là tốt nhất, nhưng nó sẽ không dẫn bạn sai, vào một vấn đề mà bạn thực sự hối tiếc.
Nhưng, đối với một cái gì đó giống như những gì bạn đang làm, có thể bạn sẽ ổn với chỉ hai trường. Tôi vẫn khuyên bạn nên làm cho hai trường trở thành khóa chính kết hợp hoặc ít nhất là đặt một chỉ mục duy nhất trên hai trường.
Nguồn
2013-02-03 19:58:43
Tôi cũng làm như vậy. Thêm cột thứ ba có thể có bản ghi trùng lặp. –
là cần thiết để tạo khóa chính kết hợp trong trường hợp này? –
@ Harry.Naeem Nếu không, bạn có thể dễ dàng kết thúc với các bản ghi trùng lặp trong bảng. Tôi sẽ không nghĩ rằng bạn muốn điều đó. – Taryn