当前位置:   article > 正文

mySQL之多对一,一对一,多对多_mysql多对1

mysql多对1

多对一

一张表的外键对应另外一张表的主键:外键字段的值可以有多个也就是多条记录,另外一张表的主键是主键,意味着每条记录是唯一的,这就是多对一的关系。

一对一

可以在多对一的基础上进行设限就可以了,只要外键字段的值唯一对应一条主键字段的记录,对外键设置unique即可。

两张表:学生表和客户表
一对一:一个学生是一个客户,一个客户有可能变成一个学校,即一对一的关系

select * from client;

idnametelqq
1a111111
2a111111
3a111111
4a111111
5a111111
6a111111
7a111111
8a111111
9a111111
10a111111
11a111111

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表内的字段进行联合约束,具体情况具体分析!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/423323
推荐阅读
相关标签
  

闽ICP备14008679号