【问题标题】:What do you call tables that create many to many relationships?您将创建多对多关系的表称为什么?
【发布时间】:2021-03-04 22:37:38
【问题描述】:

我们在棚子里就我们所说的表进行辩论,该表包含您用来创建多对多关系的实体的两个外键。这是我们的名字,你用的是哪一个?

  1. 链接表
  2. 交叉表
  3. 关系表

【问题讨论】:

标签: database-design


【解决方案1】:
4. Cross Reference.  

描述了它的实际作用,因此非技术利益相关者可以理解,例如“我们将为供应商和零件创建一个交叉引用,列出哪些供应商提供哪些零件。”

请注意,如果您使用“关系表”,它实际上就是“关系表”。 “关系”一词是关系数据库理论中的一个艺术术语。

【讨论】:

    【解决方案2】:

    以上都不是。您要描述的表类型的确切定义是什么?我唯一的理解是:你的意思是一张有多个外键的表。我不知道有什么比这更好的定义。但是,为什么要为具有多个外键的表指定一个特殊名称呢?具有多个外键的表并不是很不寻常或特殊。我只会称它们为表格并保留它。

    【讨论】:

    • 并非所有具有多个键的表都是相同的。考虑一张产品表。这可能包含一个类别的外键和一个产品组的外键(例如对同一鞋的不同尺寸进行分组)。这些外键不描述类别和产品组之间的关系。产品组几乎肯定属于一个类别,但这种关系在别处有所描述。
    • 另外考虑一个用户角色表,该表由用户表的外键和角色表的外键组成。该表的唯一功能是描述用户和角色之间的多对多关系。正在讨论的正是这种表。虽然对于如何称呼它没有达成共识,但显然值得将其与其他类型的表格区分开来。
    【解决方案3】:

    三者中:跨表。只是因为我经常听到这种说法。

    在“链接表”之前我更喜欢“关系表” - 它通过它们的关系链接项目。

    最好的名称可能是“Join Table”——因为您使用它来将其他两个表连接在一起,并带有额外的详细信息(可选)。

    我也听说过“Edge Table”——知道它的出处吗?

    【讨论】:

    • 一个网络可以被认为是由边和顶点组成的。有人可能会将话语世界建模为一个网络,其中“实体”被视为顶点,实体之间的“关系”被视为边缘。
    【解决方案4】:

    只有一个正确答案...交叉表

    【讨论】:

      【解决方案5】:
      1. 连接表。
      2. 关系表(相对于实体表)

      【讨论】:

        【解决方案6】:

        维基百科,称它为"associative table""(also known as join table, junction table, or cross-reference table)"

        似乎将其称为“多对多表”对于开发人员来说可能很清楚,而我很欣赏@Ken Downs 的例句将其描述为“非技术利益相关者可以理解”(“供应商的交叉引用和部分”)。

        【讨论】:

          猜你喜欢
          • 2017-06-10
          • 2020-09-10
          • 1970-01-01
          • 2011-03-03
          • 1970-01-01
          • 2014-09-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多