特定书籍可以有0个或更多相关的约束(例如精装本,平装本等)。所以,我说我有书1
,它与书籍2
,3
和4
相关。我可能有一个看起来像这样的表:
book_id related_book_id
1 2
1 3
1 4
现在,我认为本书2
与1
,3
和4
相关。所以,我可以扩展表记录以包含这些:
book_id related_book_id
2 1
2 3
2 4
...并对3
和4
执行相同的操作。然后为市场上存在的数百万本书做这件事。
这是一个好主意吗?我认为(1,2)
与(2,1)
相同。
我正在使用MySQL。
答案 0 :(得分:5)
我认为您需要两种不同类型的实体:出版物和标题。出版物大致与ISBN相关联,这也确保了不同版本的唯一可识别性。然后,“标题”实体将与多个出版物相关联。
Title
-----------
TitleId int
AuthorId int
BookTitle nvarchar(500)
etc...
Publication
-----------
PublicationId int
CoverType char(1)
Edition nvarchar(50)
TitleId int (foreign key to Title)
etc...