MySQL:多表关系设计(一对多 / 多对多 / 一对一)
<0> 多表关系概述
实际开发中,一个项目通常需要很多张表才能完成。
例如:一个商城项目就需要分类表(category)、 商品表(products)、订单表(orders)等多张表。且这些表的数据之间存在一定的关系,接下来我们一起 学习一下多表关系设计方面的知识
表与表之间的三种关系 |
一对多关系:最常见的关系:学生对班级 , 员工对部门 |
多对多关系:学生与课程 , 用户与角色 |
一对一关系:使用较少,因为一对一关系可以合成为一张表 |
<1> 一对多关系 (常见)
例如: 班级和学生, 部门和员工, 客户和订单, 分类和商品
建表原则: 在从表(多方)创建一个字段, 字段作为外键指向主表(一方)的主键
<2>多对多关系 (常见)
例如:老师和学生, 学生和课程, 用户和角色
建表原则: 需要创建第三行表,中间表中至少有两个字段,这两个字段分别作为外键,指向各自一方的主键
<3> 一对一关系(了解)
在实际开发中应用不多,因为一对一可以创建成一张表
建表原则: 外键唯一, 主表的主键和从表的唯一外键,形成主外键关系, 外键唯一用UNIQUE修饰