一、关系模型的本质:一张二维表
关系模型中,数据的逻辑结构就是二维表,像我们常用的 Excel 表格:
- 行:代表一个实体或关系的具体记录(比如 “用户表” 的一行就是一个用户的信息);
- 列:对应实体的属性(比如 “姓名”“手机号” 列);
- 表头:就是 “关系模式”,定义了表的结构(表名、列名、数据类型等)。
二、核心:E-R 模型转关系模型的规则
E-R 图里的 “实体” 和 “联系”,要按固定规则变成二维表,重点在 “联系” 的处理,分三种情况:
1. 1:1 联系(一对一)
比如 “用户” 与 “实名认证信息” 的联系,转换有两种方式:
- 方式 1:将联系放到任意一端实体的表中,作为属性(比如在 “用户表” 加 “实名认证 ID”,关联 “实名认证表” 的主键);
- 方式 2:单独建一张联系表,主键用两端实体的主键均可(但更常用方式 1,节省表资源)。
2. 1:N 联系(一对多)
比如 “用户” 与 “订单” 的联系(1 个用户→N 个订单),最优方式是:
- 直接在 “N 端”(订单表)中加入 “1 端”(用户表)的主键作为外键(比如订单表加 “用户 ID”),无需单独建联系表,既简洁又能体现关联。
3. M:N 联系(多对多)
比如 “学生” 与 “课程” 的联系(学生选多门课,课程被多学生选),必须单独建联系表:
- 联系表的主键是两端实体主键的 “联合主键”(比如 “选课表” 的主键是 “学生 ID + 课程 ID”);
- 还可加联系自身的属性(比如 “选课成绩”)。
三、一句话总结
关系模型就是 “用二维表存数据,按联系类型转 E-R 图”:1:1 可合可分,1:N 加外键到 N 端,M:N 必须建中间表,这是建表的核心准则。