gpt4 book ai didi

sql - 你如何处理关系数据库中的 m..n 关系?

转载 作者:太空狗 更新时间:2023-10-30 01:40:52 25 4
gpt4 key购买 nike

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

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

假设我们有 Bob 的三本书。然而,在一本书中,他写的是鲍勃,博士。另一个他写为鲍勃博士,第三个他写为罗伯特博士。我希望能够确定这些作者实际上是同一个人,但以不同的名字命名的事实。我还想将 Bob 与另一个写了不同书的 Bob 区分开来。

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

那么,对于这种可能很复杂的映射,有什么策略可以确保通过封面上的名字来识别图书作者?

最佳答案

添加另一个名为 BookAuthors 的表,其中包含 BookID、AuthorID 和 NameUsed 列。 NameUsed 的 NULL 值意味着从 Author 的表中提取它。这称为交集表。

关于sql - 你如何处理关系数据库中的 m..n 关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/183742/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com