赞
踩
一张表的外键对应另外一张表的主键:外键字段的值可以有多个也就是多条记录,另外一张表的主键是主键,意味着每条记录是唯一的,这就是多对一的关系。
可以在多对一的基础上进行设限就可以了,只要外键字段的值唯一对应一条主键字段的记录,对外键设置unique即可。
两张表:学生表和客户表
一对一:一个学生是一个客户,一个客户有可能变成一个学校,即一对一的关系select * from client;
id | name | tel | |
---|---|---|---|
1 | a | 111 | 111 |
2 | a | 111 | 111 |
3 | a | 111 | 111 |
4 | a | 111 | 111 |
5 | a | 111 | 111 |
6 | a | 111 | 111 |
7 | a | 111 | 111 |
8 | a | 111 | 111 |
9 | a | 111 | 111 |
10 | a | 111 | 111 |
11 | a | 111 | 111 |
create table client(id int auto_increment primary key,name varchar(10),te
l int,qq int);
Query OK, 0 rows affected (0.31 sec)mysql> insert into client(name,tel,qq) values(‘a’,111,111);
Query OK, 1 row affected (0.07 sec)mysql> create table stu(
-> id int auto_increment primary key,
-> course varchar(20),
-> cid int,
-> foreign key(cid) references client(id)
-> on delete cascade
-> on update cascade,
-> unique(cid)
-> );
Query OK, 0 rows affected (0.56 sec)
一张t1或者二张表t2,一张表t1对另一张表t2有多对一关系,另一张表t2对这张表t1也有多对一关系,这种情况下需要建一张新表t3来记录t1表和t2表的关系,这种就是多对多的关系。还要注意一点的是需要考虑场景:需不需要加unique对t3表内的字段进行联合约束,具体情况具体分析!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。