“关联表”(多对多关系)的正确名称是啥[关闭]

Posted

技术标签:

【中文标题】“关联表”(多对多关系)的正确名称是啥[关闭]【英文标题】:What's the correct name for an "association table" (a many-to-many relationship) [closed]“关联表”(多对多关系)的正确名称是什么[关闭] 【发布时间】:2011-03-03 23:14:41 【问题描述】:

“关联表”的正确名称或最流行的名称是什么?

我听说过查找、关联、解析、映射和联结表。

【问题讨论】:

我想我也听说过它叫“链接表”,但它与链接表的概念有太多重叠和歧义 What should I name a table that maps two tables together? 的可能重复项。没有绝对的“正确”名称,只有同义词具有相同含义:Xreference(XREF)、map、lookup、associative 等 en.wikipedia.org/wiki/Junction_table 说:连接表有很多名称,其中交叉引用表、桥表、连接表、映射表、交叉表、链接表、多对多解析器、链接表、配对表、数据透视表、转换表、人行横道或关联表。 【参考方案1】:

没有“正确”的名称,但学术名称将是“关联表”(参见***文章Associative Entity)。其他常用名称(按字母顺序):

关联表 桥牌桌 交叉引用表 人行横道 中间表 交点表 加入表 连接表 链接表 链接表 多对多解析器 地图表 映射表 数据透视表 配对表 关系表 转换表

注意:这是由 Derek Greer 创建的原始内容,但作为对已接受答案的编辑发布,完全改变了答案。

【讨论】:

创建的答案根据meta.***.com/questions/337963/…从接受的答案中回滚 我也使用 pivot 表。根据公司标准,我可能只在表studentscourses 上使用student_courses 进行多对多。我遇到的一些标准可能会为此强制使用前缀;如lnkrefpvt等... lnk_students_courses.【参考方案2】:

交叉引用表。客户产品外部参照。

【讨论】:

我不得不说我完全反对你的命名约定。如果您接受这样的表是关系表,那么表名应该反映关系。我认为大多数数据建模者会将客户和产品之间的关系称为“订单”。 @onedaywhen "Orders" 通常是多对一的例子,而不是多对多的例子,尽管不幸地提到了"产品"。此外,将“客户订单”与“采购订单”区分开来可能是有意义的。在一对多的情况下,如果条件允许,我会选择不使用连接表。对于您的批评,“客户产品”确实是一个不寻常的表名称组合。【参考方案3】:

“正确”取决于使用的建模方法。我对陈很熟悉,其中这张表是Associative Entity的物理实现。我想最流行的将与最流行的建模方法直接相关。

Wikipedia 列出了此类表的多个名称。

【讨论】:

【参考方案4】:

我被教导并使用术语“加入表

【讨论】:

【参考方案5】:

取决于你问谁。它们都是正确的,请使用对您正在与之交谈的人最有意义的术语。

【讨论】:

【参考方案6】:

关系表。

“SQL 中的一个基本技巧是表示多对多关系。您创建第三个表,该表引用主键所涉及的两个(或多个)表。这第三个表有很多流行的名称,比如'junction table'或者'join table',但我知道是关系。”

Hollywood Couples by Joe Celko

【讨论】:

【参考方案7】:

您将客户表称为 CustomerTable 还是 Customer 或 Customers?我通常使用“业务对象”名称(例如,有关哪些客户订购了哪些产品的信息的订单,而不是 CustomerProduct),但是一个真正只是跟踪关系的表,如 SalesRepCustomer,我给出了所涉及的两个表的名称并且不要t 添加后缀。正如其他人所说,保持一致。

我保留名称查找(在对话中,而不是在表名中)诸如“国家 11 的名称是什么”之类的内容,而不是“哪个销售代表负责国家 11”。

【讨论】:

+1 但是对于跟踪关系的表,“业务”通常已经有了该关系的名称,例如对于我工作的企业,负责照顾特定客户的销售人员被称为“客户经理”。【参考方案8】:

我们在我工作的地方称这些人行横道桌子。命名基于 Table1XTable2,其中内容是 2 个表的 PK。

【讨论】:

以上是关于“关联表”(多对多关系)的正确名称是啥[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Hibernate学习笔记 --- 创建基于中间关联表的多对多映射关系

DynamoDB - 关联表 - 多对多关系

Flask/SQLAlchemy - 多对多关系的关联模型和关联表之间的区别?

使用 Prisma 通过关联表查询多对多关系

思考具有两个外键的一对多或多对多关系的正确方法是啥?

在 NHibernate 中定义多对多关系以允许删除但避免重复记录的正确方法是啥