请稍等 ...
×

采纳答案成功!

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

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

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

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

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

正在回答

1回答

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

0 回复 有任何疑惑可以回复我~
  • 提问者 LBruce #1
    有时候不是会使用反范式化设计吗?老师
    回复 有任何疑惑可以回复我~ 2021-01-13 14:38:24
  • 神思者 回复 提问者 LBruce #2
    反模式你这也反的太厉害了
    回复 有任何疑惑可以回复我~ 2021-01-13 14:53:22
  • 提问者 LBruce 回复 神思者 #3
    噢噢,我大概明白了。我可能有点表述不清,我意思不是把别的表字段全copy过来,而是只对别的表部分字段copy过来。
    回复 有任何疑惑可以回复我~ 2021-01-13 15:00:52
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信