关于数据库冗余字段的问题

来源:8-9 主动更新订单状态

LBruce

2021-01-13

场景:
有A,B两张表,它们之间数据的对应关系是多对多,然后引入C表作为A,B两张表数据的对应关系映射表。

存在问题:
就查询来讲,如果我要根据C表存放的对应关系去查询A,B的数据,如果C表没有冗余字段,那么就需要多次单表查询(或者join)C,A,B三表。如果有冗余字段,那么很可能只需要一次单表查询C表就完成了,效率会更高。但是有一个问题,无论是A,B两表哪个表,要做数据更新的话,都会需要在C表也做一次相应的数据更新。比单张表的更新效率会更低一点。

疑惑:
一般要怎么界定是否需要在这种关系映射表中添加冗余字段呢?
个人观点是对于 如果说数据更改的频率比较小,更多的时候是查询,那么可以在关联表中添加上冗余字段,反之就不要添加上冗余字段了。 老师怎么看待这个问题?谢谢老师解答

写回答

1回答

神思者

2021-01-13

建议你重新温习一下数据库范式 不是说我现在用到某张表,不用另外的表,我就可以把其他表的字段copy一份到我的表里面。你这种思想是违反范式的。

0
5
LBruce
回复
神思者
谢谢老师解答
2021-01-13
共5条回复

Java支付全家桶 企业级各类支付手段一站式解决方案

微信/支付宝/银联/混合支付,App/PC/H5/小程序,企业级通用支付

753 学习 · 201 问题

查看课程