多表设计
dept 表
id name
1 行政部
2 财务部
3 人事部
4 销售部
emp表
id name dept_id(外键)
1 芙蓉姐姐 1
2 犀利哥 2
3 春哥 3
4 曾哥 3
部门和员工是 1对多的关系
外键约束:
表是用来保存现实生活中的数据,而现实生活中数据和数据之间有一定的关系
,我们在使用表来存储数据时,可以明确的声明表与表之间的依赖关系,命令数据库
来帮我们维护这种关系,向这种约束就是外键约束。
1对多的关系:
在多的一方保存一的一方的主键作为外键,以此保存两张表之间的关系
1对1的关系:
在一对一的关系中,在任意的一方保存另一方的主键作为外键
多对多的关系: 老师和学生
在多对多的关系中,需要设计一张第三方的关系表,保存两方的主键作为外键
保存两者的对应关系
create table dept(
id int primary key auto_increment,
name varchar(20)
);
insert into dept values(null, '财务部'),(null, '人事部'),(null, '销售部'),(null, '行政部');
create table emp(
id int primary key auto_increment,
name varchar(20),
dept_id int,
foreign key(dept_id) references dept(id)
);
insert into emp values(null, '奥巴马', 1),(null, '哈利波特', 2),(null, '本拉登', 3),
(null, 'zy', 3);
insert into emp values(null, '三胖', 5); //插入失败