重新认识冗余字段

1冗余字段的定义

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

2冗余字段的弊端

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

3冗余字段的用处

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

4冗余字段的使用原则

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

a不随便使用冗余字段。

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

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

总之,冗余字段是一杯酒,小酌怡情,痛饮伤身,乱喝要命。

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值