用于PHP书籍搜索的数据库,如何根据书籍存储多个不同数量的作者

时间:2014-03-03 11:20:08

标签: php mysql database schema

我只是在寻找有关多位作者存储书籍的最佳方式的建议。此刻,我喜欢它 BookID,Title,Author,Year,(等等)但我被问到如果一本书有多个作者,我想在数据库中搜索另一位作者的书。拥有喜欢会很傻 BookID,Title,Author,Author1,Author2,Autho3r,Author4,Year, 大多数时候,author1之后的任何内容都将为null。

我知道我刚刚解释的内容可能令人困惑,但最好的方法是存储多个不同数量的作者。

由于

1 个答案:

答案 0 :(得分:6)

您需要三张桌子。

- books
- authors
- author_book

书籍表仅存储有关该书的信息。

authors表仅存储有关作者的信息。

author_book表存储两个表之间的链接,只包含它们的id(author_id,book_id)

这是常见做法,称为many-to-many关系。

有关详细信息,请参阅此处:http://en.wikipedia.org/wiki/Many-to-many_(data_model)