一对一、一对多、多对多
ER图(实体-关系图)是数据库设计中用于表示实体、属性及其之间关系的图形化工具。其核心关系类型如下:
一、常见关系类型
-
一对一(1:1)关系
两个实体之间仅存在唯一对应关系。例如:
- 一个人只有一个身份证号码,一个身份证号码也仅对应一个人。 - 一个具体订单仅对应一个客户,一个客户也仅有一个该订单(需注意部分场景可能通过其他方式拆分)。
-
一对多(1:N)关系
一个实体与多个其他实体存在关联,但后者每个实例仅与前者关联一次。例如:
- 一个班级有多个学生,但每个学生仅属于一个班级。 - 一本书有多个副本,但每个副本仅属于一本书。
-
多对多(M:N)关系
多个实体之间可存在多对多关联,需通过中间关系表实现。例如:
- 学生可以选修多门课程,每门课程也可被多个学生选修。 - 一个员工可以参与多个项目,每个项目也可包含多个员工。
二、其他特殊关系类型
-
多对一(N:1)关系
多个实体与一个实体存在关联,但前者每个实例仅与后者关联一次。例如:
- 多个学生属于同一学院,但每个学院仅有一个学生编号。 - 多个设备属于同一品牌,但每个品牌仅有一个官方认证。
-
弱实体关系
依赖其他实体存在,需通过外键关联。例如:
- 订单项依赖订单存在,没有订单则无订单项。
三、关系表示方法
- 菱形 :用于表示关系,标注关系名称(如“借阅”)及类型(如1:N)。- 属性 :用椭圆形表示,描述实体的特征(如学生ID、姓名)。- 主键 :用下划线标注,确保实体唯一性(如身份证号)。- 外键 :用带箭头的线连接,建立实体关联(如学生表中的班级ID)。
四、ER图的作用
通过直观展示实体间的关联,ER图帮助数据库设计人员:
-
明确数据结构
-
优化查询性能
-
促进团队沟通与文档化。