Mysql外键约束,一对多、多对多、一对一
外键就是跟其他的表打交道的键,还有主键(id)是自己这张表中主要的一个键。
工具/原料
Centos Mysql Linux
一对多
1、一对多是表与表之间建立的关系(两张表之间的关系,不是三张也不是四张,一定是两张表之间的关系).例如,员工和部门的关系:一般情况下一个员工属于一个部门,一个部门可以有多个员工,这就是一对多的关系.

2、外键(department_id)是两个表之间绑定关系的。外键(department_id)一定要放在多的一方,员工表就是多的一方,多个员工是一个部门.

3、创建一对多外键约束没有外键的一方是主表,有外键的一方是子表.把员工表中的department_id字段绑定到部门表的id字段.锾攒揉敫alter table员工表 add foreign key (department_id) references部门表(id);

多对多
1、多对多的关系例如,书和作者的关系:书可以有多个作者,作者也可以写多本书.

2、多对多的关系需要借助第三张表来实现.

3、创建多对多外键约束在第三张表中创建两个外键,把员工和部门表的book_id字段绑定到书表的id字段,author_id字段绑定到作者表的id字段.

一对一
1、一对一的关系(一对一用的非常少,了解一下就可以了)例如,作者表和作者详细信息表的的关系:一个作者对应一个作者详细信息,一一对应.作者表和作者详细信息漉胜衲仰表可以合成一个表,只不过在用的时候可能作者表是常用信息,作者详细信息表是非常用的信息,作者表放一些固定的信息,涉及到详细信息的时候在关联到详细信息表.

2、外键(author_detail_id)是两个表之间的绑定关系.创建外键(author_detail_id)的时候要加唯一(unique)约束,不加唯一(unique)约束会变成一对多的关系.

3、创建一对一外键约束对外建字段(author_detail_id)加一个唯一约束,在绑定作者表的author_detail_id字段和和作者详细表的id字段.
