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

问题描述 投票:1回答:1

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

我有一个数据库,我试图用3个实体设计:Store,Item和Wishlist。商店和愿望列表本身存在,因此很强大。但是,除非商品在商店或某人愿望清单中有库存,否则商品将不存在。

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

database database-design entity-relationship erd
1个回答
1
投票

你所描述的实际上是两个一对多的关系,对参与有额外的限制(“必须有库存或愿望清单”)。这并不意味着Item是弱实体类型。我认为在这种情况下,物品必须是强大的。除非实体都是子类型,否则我认为对于多个实体的参与约束没有任何标准的ER符号。我建议你在图表中添加一个文本符号,如果重要的是要解释一个项目必须是库存或愿望清单,但不一定是两者。

有时候,弱实体不能独立于相关实体而存在。然而,仅凭这一点并不能使事情变得微弱。如果实体类型没有独立于另一实体类型的自己的标识符,则该实体类型很弱。在您的情况下,我希望项目可以出现在多个心愿单上或存放在多个商店中,因此项目必须具有共同的标识符(例如名称或UPC),而与包含它们的愿望清单和商店无关。如果情况并非如此,那么愿望清单物品和库存可能必须是物品的子类型,这似乎有些不同寻常。

如果由于某种原因,您确实希望将愿望清单上的库存物品和物品作为物品的子类型处理,那么您的问题的答案将是强制参与的子类型关系,例如:使用Chen符号用双线表示:

subtypes with mandatory participation

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