我留下了一个评论,要避免许多协会,但我找不到原始评论/用户给我这个信息。所以我要求社区,要避免许多协会,如果是这样,为什么,又有什么选择呢?
示例:
餐厅提供多种汉堡,可以搭配许多不同的调味品。
这不是多对多关联吗?是否不需要包含BURGER表和CONDIMENT表的foriegn键的关系表?
提前致谢,
BW
答案 0 :(得分:2)
M:如果想要模仿你提到的汉堡/调味品之类的关系,就无法避免N个关联。 M:N关联没有任何内在的不可取之处。是的,他们需要第三张桌子。
通常人们试图在关系上加上额外的属性,错误地将两个1:N关联建模为M:N关联。也许这就是OP对避免M:N关联的意义。
答案 1 :(得分:1)
是的,汉堡和调味品之间的关系是多对多的。 是的,您将需要第三个表来链接这两个表。
答案 2 :(得分:1)
这不是一个明确的答案,但有时我发现我从多对多的关系开始 - 例如,在购物网站上,订购产品。但是,当我开发应用程序时,我发现链接不仅仅是一个链接,而且它本身就是一个拥有自己属性和行为的实体;在这种情况下,它将被称为“线”之类的东西。因此,如果我在第一种情况下仔细考虑过这样的事情,那么我就不会做多对多。
但当然,通常情况并非如此。
答案 3 :(得分:1)
所以我要求社区,要避免许多协会
我正在使用的真实世界数据库确实代表了多对多关系。
如果是这样,为什么,替代方案是什么?
与第三个表(又称“连接表”)的两个一对多关系,无论如何,你在物理层面上表示多对多关系。