8

Tôi có các bảng 'tác giả' và 'sách', đã tham gia vào has_many: thông qua bảng 'author_book'Rails has_many: thông qua -> Tôi có nên giữ một cột khóa chính không?

Theo như tôi có thể biết, không có mục đích cho: id trường khóa chính trên bảng 'author_book' ... nhưng trước khi tôi cam kết với ý tưởng đó, tôi chỉ muốn xác nhận. Vì vậy, có lý do nào để giữ cột 'id' trên has_many: thông qua bảng không?

Cảm ơn trước ...

+0

Bạn phải chắc chắn rằng bạn thêm 2 chỉ số cho các mối quan hệ: add_index tên_bảng, [: AUTHOR_ID,: book_id] add_index tên_bảng, [: book_id,: AUTHOR_ID] Điều này làm cho chắc chắn rằng bạn có khả năng đi mỗi thông qua quan hệ mà không cần quét bảng. Từ tên của các bảng này trong ví dụ, bạn cũng có thể thêm ': unique => true' vào các bảng này để dừng trùng lặp –

Trả lời

8

Giữ nó. Sau đó, bạn sẽ thấy số nhận dạng duy nhất trả về theo những cách không rõ ràng ban đầu.
Không giống như các nguyên tắc phát triển nhanh khác, tốt hơn là lấy các mục chất lượng dữ liệu như thế này được giải quyết ở phía trước.

3

Nếu bạn đã bao giờ có một cái gì đó độc đáo để mối quan hệ tác giả cuốn sách, bạn sẽ cần id để thiết lập nó trong bảng này thông qua một mô hình AuthorBook. Nó không giống như một kịch bản có khả năng trong trường hợp này, và bạn có thể thêm nó sau này nếu bạn cần.

Các vấn đề liên quan