为什么需要联结表来实现多对多关系?

时间:2013-06-29 20:48:28

标签: database many-to-many junction-table

这一直困扰着我,也许有人可以帮助澄清。

说我有书和作者:一本书可以由许多作者撰写,作者可以写很多书。

为什么我无法使用以下架构捕获它?为什么我需要联结表?

Books
--------
BookID (PK)
AuthorID (PK)
BookName
Authors
--------
AuthorID (PK)
AuthorName

1 个答案:

答案 0 :(得分:3)

因为要拥有一个包含多个作者的书籍,您必须在Books表格中创建一个重复的行。在你的例子中,这并不是那么糟糕,但想象一下,如果Books表有10列,或20或更多。所有这些数据都将被复制,从而增加了数据完整性随着时间推移而出现的风险。