sinat_34041300
sinat_34041300
2016-03-01 10:21
采纳率: 100%
浏览 7.8k
已采纳

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

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • qq_27704715
    倾诉风雨 2016-03-01 10:27
    已采纳

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

    点赞 评论
  • owen1759
    owen1759 2016-03-01 11: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

    点赞 评论
  • weixin_43907722
    兰尼斯特.泰温 2019-11-07 10:31

    学生表加一个科目号字段类型为字符串,取值为 1,2,3

    点赞 评论

相关推荐