没有外键,怎么映射多对多的关系呀?他们的体实要注意什么问题呀。。。。

没有外键,怎么映射多对多的关系呀?他们的体实要注意什么问题呀。。。。,第1张

这个没什么难的嘛,互相保存对方的ID主键,不就是多对多了么,头脑里就想他是个双向的一对多,比如有A,B两张表,A表中设置个bId,B表中设置个aId,然后通过a的id可以获取b的列表,反之,通过b表的id也能获取到a的列表,这就对了嘛,只是看你在写sql的时候怎么建立他们之间的关系就对了

从你的描述中,可以看出 “演员”与“”的关系是“多对多”
1、“多对多”的关系,必须要产生一个“中间表”,用来保存他们的连接关系。
2、“中间表”用来保存他们的连接关系,也方便了日后的更改,如果有连接关系变动,直接修改“中间表”即可。

(你可以从我的图很容易的理解,希望可以帮助你!)

纠正一下,多对多本身就是一种数据库类型,谈不上消除的。

如:一个老师可以有多个学生,一个学生可以有多个老师,这是没法消除的;

如果想消除不比要多对多关系,如一个学生只能有一个学号,而一个学号只能属于一个学生,那么可以确定唯一性,就可以把学号作为此数据库表的主键来进行维护,此情况下就能确保唯一性。

备注:只要数据库设计合理,出现多对多也不是什么奇怪的事,所以不用太纠结。

select from a,b,c where bid = aid and bid = cid 取三张表全部数据
select aa,cc from a aa,b bb,c cc where bbid = aaid and bbid = ccid 取A、C表全部数据


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13356334.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-20
下一篇 2023-07-20

发表评论

登录后才能评论

评论列表(0条)

保存