开发者社区> 问答> 正文

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

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

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

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

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

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

问题来源于stack overflow

展开
收起
保持可爱mmm 2019-11-18 16:51:38 903 0
1 条回答
写回答
取消 提交回答
  • 添加另一个名为BookAuthors的表,其中包含BookID,AuthorID和NameUsed的列。NameUsed的NULL值表示将其从“作者”表中拉出。这称为交集表。

    2019-11-18 16:51:46
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
事务、全局索引、透明分布式 立即下载
为并行图数据处理提供高层抽象/语言 立即下载
存储分层企业数据存储类型选择与优化 立即下载

相关实验场景

更多