一对多和多对一关系之间的真正区别是什么?它只是颠倒的,有点?
除了这个主题之外,我找不到任何关于这个主题的“易于理解”的教程: SQL for Beginners: Part 3 - Database Relationships
原文由 Zhaf 发布,翻译遵循 CC BY-SA 4.0 许可协议
一对多和多对一关系之间的真正区别是什么?它只是颠倒的,有点?
除了这个主题之外,我找不到任何关于这个主题的“易于理解”的教程: SQL for Beginners: Part 3 - Database Relationships
原文由 Zhaf 发布,翻译遵循 CC BY-SA 4.0 许可协议
我已经阅读了大部分答案。问题根本不是这里的关系。如果从概念上看一对多或多对一,它只是一种可逆的关系。然而,在您的软件或应用程序中实现这个概念时,它有很大的不同。
在多对一的情况下,我们通常希望首先写入具有多方面的表,并且我们希望它与包含单方面的表相关联。如果您将多对一概念转换为一对多,您将很难在代码中首先编写一个方面表。由于关系是在您设计数据库时定义的,因此许多方面表将寻求一个方面表数据以确保完整性。因此,如果您打算通过使用外键 -> 唯一键或外键 -> 主键来执行此操作,即使您将其视为一对多,多对一的实现也会有所不同。
在许多情况下,我个人在不使用实际关系概念的情况下进行关联。没有每次都使用数据库概念来形成关系这样的界限。只需确保您的数据库完整性得到维护,它已根据您的搜索需求正确编入索引并进行了适当的规范化。
原文由 ReflexEcho 发布,翻译遵循 CC BY-SA 4.0 许可协议
1 回答750 阅读
774 阅读
是的,反之亦然。这取决于实体存在于关系的哪一侧。
例如,如果一个部门可以雇用多名员工,那么部门与员工之间是一对多的关系(一个部门雇用许多员工),而员工与部门之间的关系是多对一的(许多员工在一个部门工作)。
有关关系类型的 更多信息:
数据库关系 - IBM DB2 文档