代码之家  ›  专栏  ›  技术社区  ›  Noah Heldman

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

  •  22
  • Noah Heldman  · 技术社区  · 15 年前

    我工作过的大多数项目都需要数据库模式中的多对多关系。例如,您可能有用户和组的概念,并且数据库可能包含一个表用户、一个表组和一个表用户组来关联这两者。

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

    我已经习惯了称他们为“摇摆台”,因为我就是这样学会的,但我有一段时间没听别人用过这个词了。

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

    • 关联表
    • 桥台
    • 对照表
    • Gerund(E.F.Codd,关系模型的创建者,可能更喜欢这个)
    • 交叉表
    • Join Table(Google上的大多数搜索结果…请参阅下面的答案)
    • 连接表(维基百科喜欢这个)
    • 链接表(链接表) Fowler likes this one )
    • 多对多关系表
    • 映射表
    • 参考表
    • 关系表
    • 回转台

    这种桌子有官方名称吗,有官方名称的来源吗?

    10 回复  |  直到 6 年前
        1
  •  13
  •   SingleShot    15 年前

    在我看来,最常见的名字是“join table”,但我听说你列出了其他几个名字。所以,我会说“不”,没有“官方”的名字:—)

        2
  •  15
  •   Steve Wortham    15 年前

    我称之为对照表。

    有些人可能不认为这是一个官方术语,但它肯定是一个流行的术语。我的意思是,如果你 search for it .我喜欢的另一件事是,它可以很容易地缩写为“xref”,然后在表命名方案中使用,例如“table1_xref_table2”。这会让你团队中的每个人都称之为同一件事。

    更新:

    维基百科称之为 junction table . 奇怪的是,我从来没有听过这个词,但我想不同的圈子称之为不同的东西。正如我们所发现的——没有一个正式的答案。

        3
  •  8
  •   Noah Heldman    15 年前

    这是非常不科学的,但我认为有趣的是,有多少谷歌结果与这个问题的常见答案和“多对多”这个词相结合。

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


    组合搜索词

    联接表“多对多”

    在Google中返回大约13700个结果。

    链接表“多对多”

    返回4700左右。

    “连接表”“多对多”

    返回3500左右。

    关联表“多对多”

    返回3300左右。

    关系表“多对多”

    返回3200左右。

    交叉表“多对多”

    返回1500左右。

    交叉引用表“多对多”

    带回1000。

    动名词“多对多”

    只返回450。

        4
  •  4
  •   Lance Rushing    15 年前

    那时候我总是打电话来 交叉 桌子。

        5
  •  3
  •   MusiGenesis    15 年前

    我叫他们 链接表 但我这么长时间以来一直这样称呼他们,我不知道这个词是从哪里来的。

        6
  •  1
  •   Cem Kalyoncu    15 年前

    我认为关系表更重要。至少这是我们使用的。顺便说一下,如果你要求命名,我们总是用这种方式 table1_table2 没有例外。从长远来看,这对你很有帮助。

        7
  •  1
  •   ChrisW    15 年前

    在SQL for Smarties中有一节,Celko有机会命名此类表:

    表示多对多的表 关系应该由它们的 内容,并应尽可能少 可能的。例如,学生 三分之一与班级相关 (关系)表 出席。这些桌子可能 代表纯粹的关系,或 (等)…

    在本节的顶部,他讨论了E-R(实体关系)图。

        8
  •  1
  •   Daniel Pryden    15 年前

    我总是叫它们“多对多表”,或者“多对多联接表”。似乎最不可能被误解为别的东西。(我注意到你在题目中使用了类似的措辞…)

        9
  •  0
  •   JamesM    15 年前

    交叉 当然可以!我相信甲骨文也赞成 交叉 桌子。

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

        10
  •  0
  •   amelvin    15 年前

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

    使用@noah在谷歌上的突破性研究,目前可获得约2000条参考:

    "link entity" "many to many"