ERD中弱实体与支撑实体可建立多个关系吗?标识关系数量限制?
ERD中弱实体与支撑实体的关系问题
弱实体能否与支撑实体建立多个关系?
可以。弱实体和支撑实体之间除了用于标识的核心依赖关系外,还能存在其他业务层面的关联关系。举个实际场景的例子:
- 把
订单明细作为弱实体,订单是它的支撑实体:二者首先存在一个标识关系(订单明细的主键包含订单的订单ID,以此确定明细归属);同时还可以新增一个业务关系,比如订单对订单明细的优先处理标记关系,用来记录哪些明细需要优先发货,这属于额外的业务关联,不会影响弱实体的标识逻辑。
多个关系中是否均可为标识关系?
不行,仅能有一个标识关系。
标识关系的核心作用是为弱实体提供主键的组成部分,弱实体的主键由支撑实体的主键属性加上自身的局部属性共同构成。如果存在多个标识关系,意味着弱实体的主键需要依赖支撑实体的多组主键属性,这会造成主键逻辑冗余,也不符合数据库设计的范式——一个弱实体只需要一组来自支撑实体的标识属性就能确定其唯一性,多余的标识关系既无实际意义,还会增加数据维护的复杂度。
内容的提问来源于stack exchange,提问作者user22712627
相关产品推荐
相关产品推荐

