说明
这里的文章是接着前面 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,这样通过单独设置一个表就将两个表联系起来。
例子中多对多的理解:
男人表中的每个数据可以对应女人表中多个数据,同时女人表中的每个数据也可以对应男人表中的多个数据。