具有2个不同所有者实体的弱实体

时间:2019-03-01 04:16:46

标签: database database-design entity-relationship erd

具有2个所有者实体的弱实体

我有一个数据库正在尝试使用3个实体进行设计:商店,商品和愿望清单。商店和愿望清单是独立存在的,因此很强大。但是,除非商品在商店有现货或某人的愿望清单上没有,否则它们将不存在。

设计ER图的最佳实践是什么?

1 个答案:

答案 0 :(得分:1)

您所描述的实际上是两个一对多的关系,对参与有额外的限制(“必须有库存或愿望清单”)。这并不意味着Item是弱实体类型。我认为在这种情况下,Item必须坚固。我认为跨实体的参与约束没有任何标准的ER符号,除非实体都是子类型。如果重要的是要说明某件商品必须是现货或愿望清单中的商品,而不必同时使用两者,则建议您在图表中添加文字符号。

有时会说弱实体不能独立于相关实体而存在。然而,这本身并不能使某些事情变得脆弱。如果一个实体类型没有独立于另一个实体类型的自己的 identifier ,则它是弱的。在您的情况下,我希望一件商品可能出现在多个愿望清单中或在多个商店中存放,因此,这些商品必须具有独立的标识符(例如名称或UPC),与愿望清单和包含它们的商店无关。如果不是这种情况,则心愿单项目和库存可能必须是项目的子类型,这似乎有点不合常规。

如果出于某种原因您确实希望将库存商品和愿望清单中的商品视为商品的子类型,那么问题的答案将是具有强制参与的子类型关系,例如用Chen符号用双线表示:

subtypes with mandatory participation