数据库理论:“多对一”和“多对仅一个”关系之间的区别

问题描述 投票:0回答:2

“多对一”和“多对仅一个”关系有什么区别?

我不知道它是否是由另一个术语引用的,但关系的“onlyOne”端通常在 ER 图中用弯曲箭头标记。

entity-relationship database-theory
2个回答
0
投票

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

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

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

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


-1
投票

下面是一对多的例子: 客户表有以下字段 客户 ID、客户名称

订单表有以下字段 订单ID、客户ID、金额

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

多对多示例如下: 带有字段的问题表(如 stackoverflow 中) 问题ID,问题

带有字段的标签表 tagId、tagType(数据库、C++ 等)

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

即 标签问题映射 标签 ID、问题 ID

© www.soinside.com 2019 - 2024. All rights reserved.