~(外键约束)表与表之间的关系
为什么使用多表?一张表不能完成吗?!

表与表之间的关系
有3类表关系:一对多(多对一)、多对多、一对一(了解)。
[1] 一对多(多对一)关系
建表原则:建立两张表。
一张主表,一张从表(从表必须有一个字段,引用主表的主键,这个字段成为外键。)
常见实例:学生和考试成绩、客户和订单、分类和商品、部门和员工。
[2] 多对多关系

建表原则:建立一张中间表(创建第 3 张表)。
中间表必须有自己的主键;至少有两个外键,这两个外键指向各自一方的主键。
[3] 一对一关系(了解)
在实际的开发中应用不多,因为一对一可以创建成一张表。如,QQ号码 和 QQ用户信息。
两种建表原则:
- 外键唯一:主表的主键和从表的外键(唯一),形成主外键关系,外键唯一unique。
- 外键是主键:主表的主键和从表的主键,形成主外键关系。
外键约束
有两张表“分类表”和“商品表”,为了表明商品属于哪个分类,通常情况下,我们将在商品表上添加一列,用于存放分类 cid 的信息,此列称为:外键。

“分类表category”称为:主表,“cid”我们称为主键。“商品表products”称为:从表,category_id称为外键。
我们通过主表的主键和从表的外键来描述主外键关系,呈现就是一对多关系。
外键特点:
- 从表外键的值是对主表主键的引用。
- 从表外键类型,必须与主表主键类型一致。
// 声明外键约束 语法:alter table 从表 add [constraint] [外键名称] foreign key (从表外键字段名) references 主表 (主表的主键); [外键名称] 用于删除外键约束的,一般建议“_fk”结尾 alter table 从表 drop foreign key 外键名称