数据库模式中的多对多关系表是不是有正式名称?

Posted

技术标签:

【中文标题】数据库模式中的多对多关系表是不是有正式名称?【英文标题】:Is there an official name for the many-to-many relationship table in a database schema?数据库模式中的多对多关系表是否有正式名称? 【发布时间】:2010-11-28 15:08:59 【问题描述】:

我从事的大多数项目都需要数据库架构中的多对多关系。例如,您可能有用户和组的概念,数据库可能包含一个表 User、一个表 Group 和一个表 UserGroup 以将两者联系起来。

我对该示例中的 UserGroup 表的概念名称感兴趣。

我已经习惯称它们为“摇摆桌”,因为我就是这么学的,但我已经有一段时间没有听到其他人使用这个词了。

相反,我听到了以下所有内容(包括一些新的,感谢大家!):

关联表 桥牌桌 交叉引用表 Gerund(E.F. Codd,关系模型的创建者,可能更喜欢这个) 交叉口表 加入表(Google 上的大多数搜索结果...请参阅下面的答案) 联结表(***偏爱这个) 链接表 (Fowler likes this one) 多对多关系表 地图表 参考表 关系表 秋千桌

这种表有官方名称,有来源支持其官方性吗?

【问题讨论】:

+1 回答一个有趣的问题。但究竟为什么它们会被称为“动名词”表呢?动名词是用作名词的动词。 “Orgy”表也可以。 它被称为动名词,因为它是一个作为关系运作的实体。 我想你忘了Look-Up Tables (LUT) 【参考方案1】:

我称之为交叉引用表。

有些人可能不认为这是一个官方术语,但它肯定是一个流行的术语。我的意思是,如果您search for it,您会在 Google 中找到大量相关结果。我喜欢的另一件事是它可以很容易地缩写为“外部参照”,然后在您的表命名方案中使用,例如“table1_xref_table2”。这会让你团队中的每个人都说同样的话。

更新:

***称它为junction table。奇怪的是我从来没有听说过这个词,但我想不同的圈子称之为不同的东西。正如我们所发现的那样——没有单一的官方答案。

【讨论】:

我更熟悉联结表,但我听说过其他短语,例如交叉引用。我已经为你 +1 了,因为你建议用谷歌搜索它。 :)【参考方案2】:

在我看来,最常见的名称是“Join Table”,但我听说过您列出的其他几个名称。所以,我会说“不”,没有“官方”名称:-)

【讨论】:

【参考方案3】:

这非常不科学,但我认为看看有多少 Google 结果与该问题的常见答案和“多对多”一词的组合相关联会很有趣。

基于此,看起来 “连接表” 是在多对多关系中...嗯...连接表的最常用术语。


组合搜索词

“连接表”“多对多”

在 Google 中返回大约 13,700 个结果。

“链接表”“多对多”

回报约为 4,700。

“联结表”“多对多”

回报约为 3,500。

“关联表”“多对多”

回报约为 3,300。

“关系表”“多对多”

回报约为 3,200。

“交集表”“多对多”

回报约为 1,500。

“交叉引用表”“多对多”

带回 1,000 个。

动名词“多对多”

只返回 450。

【讨论】:

【参考方案4】:

我总是调用 intersection 表。

【讨论】:

【参考方案5】:

我称它们为链接表,但我已经这么长时间称呼它们,以至于我不知道我从哪里得到这个词。

【讨论】:

【参考方案6】:

我总是称它们为“多对多表”或“多对多连接表”。似乎最不可能被误解为其他东西。 (我注意到您在问题标题中使用了类似的措辞...)

【讨论】:

【参考方案7】:

我认为关系表更重要。至少这是我们使用的。顺便说一句,如果您要求命名,我们总是以这种方式使用它table1_table2,没有例外。从长远来看,这将为您提供良好的服务。

【讨论】:

【参考方案8】:

在 SQL for Smarties 中有一个部分,Celko 有机会为这种表命名:

代表多对多的表 关系应该由他们的命名 内容,并且应该尽可能少 可能的。例如,学生是 与类相关的三分之一 他们的(关系)表 出席。这些表可能 代表纯粹的关系,或 (等等)...

在该部分的顶部,他谈到了 E-R(实体关系)图。

【讨论】:

感谢您的回答,但我对表格的命名约定(例如“UserGroup”或“user_group”)不感兴趣。我正在寻找这些类型的多对多表的统称。 我认为他称它们为“关系”表。【参考方案9】:

Intersection表一定!我相信 oracle 也喜欢 'Intersection' 表。

http://download.oracle.com/docs/cd/B40099_02/books/ConfigApps/ConfigApps_TablesColumns7.html

【讨论】:

【参考方案10】:

当我第一次开始研究关系数据库时(大约 20 年前的 Dec Rdb),有人告诉我称它们为“链接实体”。 “实体”位可能来自表所在的实体关系图,尽管“链接表”现在听起来更适合来自同一进化树。

使用@Noah 在 Google 上的开创性研究,目前产生了大约 2000 份参考资料:

"link entity" "many to many"

【讨论】:

以上是关于数据库模式中的多对多关系表是不是有正式名称?的主要内容,如果未能解决你的问题,请参考以下文章

Java中使用DAO模式的多对多关系

实体框架更改生成的多对多表的名称

Access中的多对多关系来自单个表

推进:没有交叉表的多对多关系

核心数据:获取特定对象的多对多关系中的所有实体?

预言机分析中的多对多关系