数据库理论:“多对一”的区别。和许多人只有一个'关系

时间:2013-06-12 13:46:51

标签: entity-relationship database-theory

我一直在网上搜索,但找不到任何有用的信息来帮助区分上述关系,它们对我来说都是一样的。我不确定它是否被另一个术语引用,但是关系的'onlyOne'结尾通常用er曲线图中的弯曲箭头标记。

Wold真的很感激有人有一个小例子来帮助区分这两者。

2 个答案:

答案 0 :(得分:0)

一对多的例子如下: Customers表具有以下字段 customerId,customerName

订单表格包含以下字段 orderId,customerId,amount

客户和订单表之间的关系是1到多个,即1个客户可以下多个订单。

许多对很多例子如下: 带有字段的问题表(如在stackoverflow中) 问题,问题

使用字段标记表格 tagId,tagType(Database,C ++ etc)

这是多对多关系的示例,即问题可以包含许多标签,标签可以属于许多问题。您需要一个单独的表来维护此映射。

即。 TagQuestionMapping tagId,questionId

答案 1 :(得分:0)

这是关于最小基数,也称为参与。参与指示对于给定实体集的所有实体出现是否必须参与该关系。换句话说,参与是强制性的还是可选的?

在这种情况下,圆角/弯曲箭头表示强制参与,因此每个实体出现 以参与关系。

实施例: 实体员工和部门,通过关系链接WorksFor是一对多关系(员工为一个部门工作,一个部门可以有多个员工在那里工作)。假设每个员工必须与至少一个部门相关联,因此参与是强制性的,您可以将其基数定义为“一个且仅一个”(或“恰好一个”)。

注意:那里有许多ER符号(Chen,UML等等),因此圆形/弯曲箭头不是表达强制参与的唯一方式。重要的方面是与符号保持一致。请参阅示例http://en.wikipedia.org/wiki/Entity%E2%80%93relationship_model#Diagramming_conventions