admin

您如何处理关系数据库中的m..n关系?

sql

让我们看一个例子-书。一本书可以有1..n位作者。作者可以拥有1..m本书。代表一本书的所有作者的一种好方法是什么?

我想到了一个创建Books表和Authors表的想法。Authors表具有一个主要AuthorID密钥,即作者的姓名。图书表具有主要的图书ID和有关图书的元数据(书名,出版日期等)。但是,需要一种将书籍链接到作者以及将作者链接到书籍的方法。这就是问题所在。

假设我们有三本鲍勃的书。但是,他在一本书中以鲍勃(Bob)博士的身份撰写。他写的另一个是鲍勃博士,第三个写的是罗伯特博士。我希望能够确定一个事实,即这些作者实际上是同一个人,但以不同的名字出名。我还想将鲍勃与另一位撰写过不同书籍的鲍勃区分开来。

现在,我们还要在应用程序的另一部分中添加一个Person表,该表跟踪有趣的人。假设鲍勃是一个有趣的人。我不仅要说三本书的作者都是鲍勃,而且要说这个有趣的鲍勃与作者鲍勃是同一个人。

那么,在确保书的作者被封面上的姓名标识的同时,针对这种潜在的复杂映射存在哪些策略?


阅读 156

收藏
2021-05-10

共1个答案

admin

添加另一个名为BookAuthors的表,其中包含BookID,AuthorID和NameUsed的列。NameUsed的NULL值表示将其从“作者”表中拉出。这称为交集表。

2021-05-10