如何映射ERD转关系模式时另一端为弱实体的M:N关系
弱实体场景下M:N关联表的映射规则
- 首先需要先完成弱实体本身的关系映射:弱实体对应的表主键由其依赖的标识强实体的主键 + 自身的partial key共同组成,partial key无法单独唯一标识弱实体实例,二者缺一不可。
- M:N关联表
ENROLLS的主键由两端关联实体的完整主键组合构成,所以弱实体一端的所有主键字段都需要加入ENROLLS的联合主键,不能只填入partial key。
对应场景示例:
如果你ERD中ENROLLS关联的弱实体是课程班次,它依赖的标识强实体是课程:
- 课程表结构:
[CourseId (PK), 课程名, 学分] - 课程班次(弱实体)表结构:
[CourseId (PK, 外键关联课程表.CourseId), SectionNo (PK), 学期, 年份],联合主键为CourseId+SectionNo - 学生表结构:
[Ssn (PK), 姓名, 院系] - 最终
ENROLLS关联表结构:
[Ssn (PK, 外键关联学生表.Ssn), CourseId (PK, 外键关联课程班次表.CourseId), SectionNo (PK, 外键关联课程班次表.SectionNo), 选课时间, 成绩]
Ssn、CourseId、SectionNo三者共同作为ENROLLS的联合主键,既符合M:N关联的主键设计规则,也能唯一对应到弱实体的单个实例。
内容的提问来源于stack exchange,提问作者S. Coughing
相关产品推荐
相关产品推荐

