数据库建模:如何将书与其绑定相关联?

Sta*_*bie 0 mysql database-design relational-database

一本特定的书可以有0个或更多相关的绑定(例如精装本,平装本等).所以,说我有本书1和它的相关书籍2,34.我可能有一个看起来像这样的表:

book_id     related_book_id
1           2
1           3
1           4
Run Code Online (Sandbox Code Playgroud)

现在,我想这也遵循本书2有关1,34.所以,我可以扩展表记录以包括这些:

book_id     related_book_id
2           1
2           3
2           4
Run Code Online (Sandbox Code Playgroud)

...并为3和做同样的事情4.然后为市场上存在的数百万本书做到这一点.

这是一个好主意吗?我觉得(1,2)和他一样(2,1).

我正在使用MySQL.

Jac*_*cob 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...
Run Code Online (Sandbox Code Playgroud)