数据库的冗余字段

Posted wangjincai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库的冗余字段相关的知识,希望对你有一定的参考价值。

1冗余字段的定义

冗余字段是指反复出现的,重复的字段。也就是说在数据库中如果表a出现过字段b,表c再出现字段b,那么字段b就可以被看作是冗余字段了。

2冗余字段的弊端

如果参照三范式,那我们在设计数据库的时候就必须致力于消灭冗余字段,毕竟如果我们需要更新某条记录,而这条记录又恰好包含了冗余字段,那么我就必须更新所有携有冗余字段的表。如果冗余冗余字段只出现在很少的表中那么这不算什么大问题。但是如果有很多很多张表都携有冗余字段,不仅会使数据库性能降低还会带来数据不一致等一系列问题。所以,我们目前所接触的经典教材都在强调三范式还是很有道理的。

3冗余字段的用处

冗余字段确实有很大地弊端,这是否说明我们就该将之视为洪水猛兽,弃而不用呢?大可不必。举个例子来说表a有三个字段:员工号,员工姓名,员工出生日期;表b有三个字段员工号,员工工资,员工工龄;这样的设计符合三范式。但是我们发现当我们查询员工工龄的时候不仅仅需要知道员工号,还需要知道员工姓名。这个时候我们需要使用join语句或者使用视图来获取员工工龄和员工姓名。当数据只有百条,千条时这样设计并没有什么问题,但当数据库中有几万条数据时再使用join语句就未必是个好方法了。这时候如果在表b中增加一个姓名的冗余字段就能提升数据库的性能。

4冗余字段的使用原则

冗余字段不是妖魔鬼怪。在像我这样的菜鸟眼中它可能像一头狮子一样凶猛可怕,但在高手面前,它却会像小猫一样乖巧可爱。想要成为高手,就必须学会驾驭雄狮,而想要驾驭雄狮就必须去了解它。下面来讨论一下冗余字段的使用原则。

a不随便使用冗余字段。

b只在关键数据上使用冗余字段

c根据业务需求决定是否使用冗余字段

d查询多更新少  加冗余

以上是关于数据库的冗余字段的主要内容,如果未能解决你的问题,请参考以下文章

数据库设计之冗余字段设计

关于数据库冗余字段及适当性

数据冗余

pyspark dataframe数据连接(join)转化为pandas dataframe基于多个字段删除冗余数据

删除数据表中除id外其他字段相同的冗余信息

数据库中的历史数据和冗余字段