2 sinat 34041300 sinat_34041300 于 2016.03.01 18:21 提问

数据库两张表多对多关系为什么用中间表而不用相互外建

数据库两张表多对多关系为什么用中间表而不用相互外建,菜鸟求指点

2个回答

qq_27704715
qq_27704715   2016.03.01 18:27
已采纳

如果用外键去做,你想想你的SQL语句查询会乱成什么样,还有就是查询结果a表包括b表的数据,b表包含a表的数据,
数据库一层一层查询下去可能出现死循环当机的,而通过外键,你每次查询都是一个对应两个表的两个list集合。而不是无穷无尽的查询

sinat_34041300
sinat_34041300 谢谢,我建个表体会一下
接近 2 年之前 回复
owen1759
owen1759   2016.03.01 19:38

不要光看着书在那空想,你试一下就知道想只用两个表来表达多对多关系根本是办不到的事情,除非你连范式都不要了。因为多对多关系的条目数是两者条目数相乘的。
我现在给你一个“学生选课表”,你看要怎样改才能把中间表去掉?
学号 姓名
1 张三
2 李四
3 王五
科目号 科目
1 语文
2 数学
3 英语
选课表
1 1
1 2
1 3
2 1
2 2
2 3
3 1
3 2
3 3

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!