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

来源:10-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

同学你好:

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

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


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

2
1
LBruce
谢谢老师
2021-01-13
共1条回复

Java实操避坑指南 SpringBoot/MySQL/Redis错误详解

掌握业务开发中各种类型的坑,,Java web开发领域通用

466 学习 · 204 问题

查看课程