先把实体变成表,再处理联系
一般来说,ER 图里的实体会转换成关系模式,也就是我们平时说的表。实体的属性通常成为表的字段,能唯一标识实体的属性成为主键。
真正容易出题的是联系。不同联系类型处理方式不一样,尤其是多对多联系,通常不能简单把一个外键塞进某一边,而要单独建立中间关系。
| ER图元素 | 关系模式处理 | 常见提醒 |
|---|---|---|
| 实体 | 转换为一个关系模式 | 实体属性变成字段 |
| 主标识符 | 通常作为主键 | 主键不能重复也不能为空 |
| 1对多联系 | 多的一方加外键 | 外键指向一的一方主键 |
| 多对多联系 | 建立中间关系 | 中间表通常包含两边主键 |
多对多联系为什么要拆中间表
多对多的本质是两边都可能出现多个匹配对象。比如学生和课程,一个学生可以选多门课,一门课也可以被多个学生选。直接在学生表里放课程字段,或者在课程表里放学生字段,都会导致重复、扩展困难和更新异常。
中间表的价值,是把一次具体关联记录下来。选课表里可以放学生编号、课程编号,还可以放成绩、选课时间等联系本身的属性。
考试里常见的失分点
第一,把多对多误当成一对多,少建了中间表。第二,只写了两个外键,忘记说明它们共同构成中间表的重要标识。第三,忽略联系自身属性,比如成绩、数量、时间这类字段。
做题时建议先在题干里圈出“一个……多个……”这种描述。只要两边都是多个,多半就是多对多,要优先想到中间关系。
相关题目解析
下面这些题目和本专题的判断方法关联较强,适合读完概念后回到具体题干里校验理解。
- ER 图中的多对多联系转换成关系模式时怎么处理?ER 模型 / 多对多联系
- 数据库表中的主键为什么不能重复也不能为空?主键 / 实体完整性
- 数据库主键有什么作用?主键 / 关系模型