请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

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

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

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

正在回答

1回答

同学你好:

    首先,你的这个问题其实是与业务有强关联的。为什么这么说呢?因为表之所以是查询比较多还是更新比较多,是业务的特点决定的。

    数据表要不要加上冗余字段,我觉得都可以,加上或者不加上,各自有各自的优缺点。另外,每个人也有每个人的喜好、公司也有公司的规范和要求。所以,这样的问题不需要过分的纠结。


    我是勤一,致力于将这门课程的问答区打造为 Java 知识体系知识库,Java 知识体系 BBS!共同建造、维护这门课程,我需要每一个你!

2 回复 有任何疑惑可以回复我~
  • 提问者 LBruce #1
    谢谢老师
    回复 有任何疑惑可以回复我~ 2021-01-13 14:31:39
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信