1

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

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

4

2 回答 2

0

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

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

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

注意:那里有许多 ER 符号(Chen's、UML 等等),所以圆形/弯曲箭头并不是表达强制参与的唯一方式。重要的方面是与符号一致。参见例如http://en.wikipedia.org/wiki/Entity%E2%80%93relationship_model#Diagramming_conventions

于 2013-06-18T14:48:32.340 回答
-1

一对多示例如下:客户表具有以下字段 customerId、customerName

Orders 表有以下字段 orderId、customerId、amount

客户和订单表之间的关系是一对多,即一位客户可以下许多订单。

多对多示例如下: 带有字段 questionId、问题的问题表(如在 stackoverflow 中)

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

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

即TagQuestionMapping tagId, questionId

于 2013-06-12T13:54:16.683 回答