Mô hình cơ sở dữ liệu
Về cơ bản, bạn cần một many-to-many
mối quan hệ giữa Tác giả và Ấn phẩm, vì một tác giả có thể viết nhiều ấn phẩm và một ấn phẩm có thể được viết bởi nhiều tác giả.
Điều này yêu cầu bạn phải có 3 bảng.
- Tác giả - thông tin chung về mọi tác giả (không có edition_id)
- Xuất bản - thông tin chung về mọi xuất bản (không có author_id)
- AuthorPublication - các cột
author_id
vàpublication_id
đó là các tham chiếu đến bảngAuthor
vàPublication
.
Bằng cách này, bạn không ràng buộc một tác giả cụ thể với một ấn phẩm, nhưng bạn có thể có nhiều tác giả hơn và điều tương tự theo cách khác.
Ghi chú bổ sung
Nếu bạn muốn phân biệt vai trò của các tác giả trong ấn phẩm cụ thể, bạn cũng có thể thêm một số cột như id_role
đó sẽ là một tham chiếu đến một bảng từ điển nêu tất cả các vai trò có thể có đối với một tác giả. Bằng cách này, bạn có thể phân biệt giữa các tác giả hàng đầu, đồng tác giả, v.v. Bằng cách này, bạn cũng có thể lưu trữ thông tin về những người xử lý bản dịch của cuốn sách, nhưng có lẽ sau đó bạn nên thay đổi tên của Author
đến một cái gì đó ít cụ thể hơn.
Thứ tự xuất hiện
Bạn có thể đảm bảo sắp xếp đúng thứ tự các tác giả của mình bằng cách thêm một cột trong AuthorPublication
mà bạn sẽ tăng riêng cho mỗi Publication
. Bằng cách này, bạn sẽ có thể bảo quản đơn đặt hàng khi bạn cần.