我有一个关于我要创建的数据库的新手问题。我有一份出版物列表,其顺序如下:
UID,作者,URL,标题,出版物,起始页,结束页,数量,年份
然后我意识到有多个作者,因此我开始尝试规范化多个作者的数据库。然后我意识到作者的顺序很重要,而且期刊文章中也可能有许多作者,人数在1到数十名之间,甚至可能更多。
我应该只创建一个包含多个Authors(空列)的表(如12或类似的东西)吗?还是有一种方法可以根据作者数量来改变列数?
基本上,您需要many-to-many作者与出版物之间的关系,因为一个作者可以撰写许多出版物,而一个出版物可以由多个作者撰写。
many-to-many
这需要您有3张桌子。
author_id
publication_id
Author
Publication
这样,您就不会将特定作者绑定到出版物,但是您可以拥有更多的作者,反之亦然。
如果您想区分作者在特定出版物中的角色,则还可以添加一些列,例如id_role对字典表的引用,该表说明了作者的所有可能角色。这样,您可以在主要作者,合著者等之间有所不同。这样,您还可以存储有关处理本书翻译的人员的信息,但是也许您应该将其命名更改为Author不太具体的名称。
id_role
您可以通过添加一列来确保作者的正确排序,在AuthorPublication该列中您将为每一个单独增加Publication。这样,您将能够保留所需的顺序。
AuthorPublication