一对多和多对一关系的区别

新手上路,请多包涵

一对多和多对一关系之间的真正区别是什么?它只是颠倒的,有点?

除了这个主题之外,我找不到任何关于这个主题的“易于理解”的教程: SQL for Beginners: Part 3 - Database Relationships

原文由 Zhaf 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 966
2 个回答

是的,反之亦然。这取决于实体存在于关系的哪一侧。

例如,如果一个部门可以雇用多名员工,那么部门与员工之间是一对多的关系(一个部门雇用许多员工),而员工与部门之间的关系是多对一的(许多员工在一个部门工作)。

有关关系类型的 更多信息

数据库关系 - IBM DB2 文档

原文由 Devendra D. Chavan 发布,翻译遵循 CC BY-SA 4.0 许可协议

我已经阅读了大部分答案。问题根本不是这里的关系。如果从概念上看一对多或多对一,它只是一种可逆的关系。然而,在您的软件或应用程序中实现这个概念时,它有很大的不同。

在多对一的情况下,我们通常希望首先写入具有多方面的表,并且我们希望它与包含单方面的表相关联。如果您将多对一概念转换为一对多,您将很难在代码中首先编写一个方面表。由于关系是在您设计数据库时定义的,因此许多方面表将寻求一个方面表数据以确保完整性。因此,如果您打算通过使用外键 -> 唯一键或外键 -> 主键来执行此操作,即使您将其视为一对多,多对一的实现也会有所不同。

在许多情况下,我个人在不使用实际关系概念的情况下进行关联。没有每次都使用数据库概念来形成关系这样的界限。只需确保您的数据库完整性得到维护,它已根据您的搜索需求正确编入索引并进行了适当的规范化。

原文由 ReflexEcho 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进