Mysql外键约束,一对多、多对多、一对一

2024-11-02 08:16:46

外键就是跟其他的表打交道的键,还有主键(id)是自己这张表中主要的一个键。

工具/原料

Centos Mysql Linux

一对多

1、一对多是表与表之间建立的关系(两张表之间的关系,不是三张也不是四张,一定是两张表之间的关系).例如,员工和部门的关系:一般情况下一个员工属于一个部门,一个部门可以有多个员工,这就是一对多的关系.

Mysql外键约束,一对多、多对多、一对一

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

Mysql外键约束,一对多、多对多、一对一

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

Mysql外键约束,一对多、多对多、一对一

多对多

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

Mysql外键约束,一对多、多对多、一对一

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

Mysql外键约束,一对多、多对多、一对一

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

Mysql外键约束,一对多、多对多、一对一

一对一

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

Mysql外键约束,一对多、多对多、一对一

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

Mysql外键约束,一对多、多对多、一对一

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

Mysql外键约束,一对多、多对多、一对一
猜你喜欢