mysql表一对多怎么办_mysql数据表的一对多 多对多

我想请问下数据表的简单设计

一个一对多 为何要在多表添加字段 而不在1表添加 请举例

多对多 为什么要把形成第三个表 形成一对多 而不在他们的表各添加一个字段呢?

我要详细的解释

bVtHS2

回复内容:

我想请问下数据表的简单设计

一个一对多 为何要在多表添加字段 而不在1表添加 请举例

多对多 为什么要把形成第三个表 形成一对多 而不在他们的表各添加一个字段呢?

我要详细的解释

bVtHS2

我终于看到了一个傻逼问题,你和几个人喝一杯饮料,一杯饮料对多个人,也就是一对多,难道不是每个人拿个管子插到那杯饮料里面去?也就是每个人有一个字段存储上面关联的饮料。

好了,多对多,假设两个表都有一个字段来存储关系,那么每新增一个对应关系你就需要在当前数据列新增一个关联数据到那个字段对吧?你以逗号分隔还是以什么分隔这个Id我不管,但是结构够清晰么?怎么想都不太符合常规逻辑啊。这个我懒得解释了。

编辑了半天,最后总结一下算了。

百度一下:第三范式

为了减少数据冗余

问题一:一对多在多表加字段仅仅是因为 ‘这个时候一是主表多是辅表,所以外键放在多上’,这个是业务需求定的,你完全可以放在一上,那样的话多是主表,一是辅表,外键在一上。

问题二:你说的那样是可行的,但是,成本过高(开发成本和维护成本),开发难度相对增大,维护成本增大。多对多普遍惯例就是新增一个第三方表。

官方着回答就是(这种反范式化设计)

f68f2add0b68e4f9810432fce46917b7.png

相关标签:php

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值