第一章 商城系统表结构实现:
1.1 需求分析:
商城系统表结构的实现,现提供表关系图,如下:
通过对上图内容的查看,整个案例中将使用5张表,且表与表之间存在一定的关系,接下来我们将一起学习sql的多表操作。
1.2 外键:
现在我们有两张表“分类表”和“商品表”,为了表明商品属于哪个分类,通常情况下,我们将在商品表上添加一列,用于存放分类cid的信息,此列称为:外键。
此时“分类表category”称为:主表,“cid”我们成为主键。“商品表products”成为:从表,category_id称为外键。我们通过主表的主键和从表的外键来描述主外键的关系,呈现就是一对多关系。
外键特点:
- 从表外键的值是对主表主键的引用。
- 从表外键类型,必须与主表主键类型一致。
声明外键约束:
语法:
alter table 从表 add [constraint] [外键名称] foreign key (从表外键字段) references 主表 (主表的主键);
[外键名称] 用于删除外键约束的,一般建议"_fk"结尾
alter table 从表 drop foreign key 外键名称
使用外键目的:
- 保证数据完整性
1.3 表与表之间的关系:
表与表之间的关系,说的就是表与表数据之间的关系。
1、一对多关系:
- 常见实例:客户和订单,分类和商品,部门和员工。
- 一对多建表原则:在从表(多方)创建一个字段,字段作为外键指向主表(一方)的主键。
2、多对多关系:
- 常见实例:学生和课程,商品和订单,人和角色。
- 多对多关系建表原则:需要创建第三张表,中间表中至少两个字段,这两个字段分别作为外键指向各自一方的主键。(就是将一个多对多拆分成两个一对多)
- 两张表分别都是主表,第三张表为从表,提供两个字段,都是外键。