Mysql连表之多对多

Posted 手里有糖

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql连表之多对多相关的知识,希望对你有一定的参考价值。

说明

这里的文章是接着前面 Mysql连表一对多 写的。

 

连表多对多

可以理解成一夫多妻和一妻多夫。

男人表:

nid name
1 xxx
2 yyy
3 zzz

女人表:

nid name
1 aaa
2 bbb
3 ccc

要让两个表建立关系,可以使用外键,为每个表增加一列进行互相绑定,让他们互相约束。

但是,这样做并不理想,毕竟要修改表。

 

一般这样的条件,会再单独创建一个表,然后表里面有2个数据和2个表的id分别关联。这表可以叫关系表。

做法:
在关系表上设置2个外键,分别与对应的男表女表进行关联

nid man_id women_id
1 1 3
2 3 1
3 2 2

说明:

在关系表上设置两个外键,让man_id对应男人表中的nid,women_id对应女人表中的nid,这样通过单独设置一个表就将两个表联系起来。

 

例子中多对多的理解:

男人表中的每个数据可以对应女人表中多个数据,同时女人表中的每个数据也可以对应男人表中的多个数据。

 

以上是关于Mysql连表之多对多的主要内容,如果未能解决你的问题,请参考以下文章

Mybatis之关联关系(一对多多对多)

059:表关系之多对多

MyBatis注解开发之多对多查询

Hibernate关联关系之多对多

Hibernate之多对多篇

关联映射 ---- Hibernate之多对多关系