【问题标题】: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)

标签: database naming-conventions rdbms


【解决方案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"
                

                【讨论】:

                  猜你喜欢
                  • 2015-12-31
                  • 1970-01-01
                  • 1970-01-01
                  • 2011-03-03
                  • 1970-01-01
                  • 1970-01-01
                  • 2012-03-26
                  • 2019-01-28
                  • 1970-01-01
                  相关资源
                  最近更新 更多