【发布时间】:2017-07-06 09:45:33
【问题描述】:
使用 Chen 符号绘制 ER 图时。 是否所有 1:N 关系都用总参与约束双线绘制? 例如:一张发票可以有多个付款。并且付款必须具有发票编号,因为已为发票完成付款。这有 1:n 的关系,所以我如何把它放在图中? erd example
【问题讨论】:
标签: database-design entity-relationship erd entity-relationship-model
使用 Chen 符号绘制 ER 图时。 是否所有 1:N 关系都用总参与约束双线绘制? 例如:一张发票可以有多个付款。并且付款必须具有发票编号,因为已为发票完成付款。这有 1:n 的关系,所以我如何把它放在图中? erd example
【问题讨论】:
标签: database-design entity-relationship erd entity-relationship-model
不,所有 1:N 关系都不需要多方实体集的完全参与。一个人可以在一栋楼里,而一栋楼可以容纳多人,但一栋楼可以是空的,人可以在外面。
在您的示例中,每个Payment 都必须与Invoice 相关吗?如果是,则使用双重关联线表示Payment 完全参与Received 关系。
双边框菱形表示识别关系。使用它表明Payment 不是由它自己的属性来识别的,而是由它的Invoice 和一个弱键来识别的。弱键通常是一个序数或角色,它本身不是唯一的,但用于细分父实体。例如,考虑一个模型,其中Invoices 有数字,Payments 由Invoice 数字和一个序列号标识,以指示该Invoice 的第一次、第二次或第三次付款。
弱实体集必须完全参与它们的识别关系,但请记住,完全参与并不意味着识别关系。
另见我对Is optionality (mandatory, optional) and participation (total, partial) are same?的回复
【讨论】: