SQL 创建多表及多表之间关系¶
需求¶
分类表和商品表之间是不是有关系? 如果有关系,在数据库中如何表示这种关系
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
|
技术分析¶
- 多表之间的关系如何来维护
外键约束: foreign key
- 插入数据: 数据必须先存在于主表,然后再插入从表中的数据
-
删除数据(删主表时): 必须先删除从表中数据,再删除主表中的数据
-
多表之间的建表原则
-
一对多: 学生和班级, 商品分类和商品
- 建表原则: 在多的一方添加一个键,然后让它作为外键指向一的一方
-
多对多: 学生和选课
- 建表原则:创建一张中间表,将多对多的关系,拆分成一对多的关系, 中间表至少要包含两个外键,这两个外键分别指向各自原来的表
-
一对一: 公民和身份证号,公司和公司地址
-
建表原则:
-
将两张表的主键建立连接,
- 将两张合并成一张表
- 将一对一的关系,拆分成一对多的关系,在任意一方添加一个外键约束,并且还要一个唯一约束
-