数据库设计--冗余的一点建议

来源:互联网 发布:弓弦逸鹤 知乎 编辑:程序博客网 时间:2024/06/06 03:01

首先,声明的一点:不合理的设计不要说冗余设计,那只是借口,真正的冗余设计不是这样的。

冗余设计的原则:

1、尽量减少冗余

2、只对关键数据冗余

3、冗余必须是证据,要保证数据出错时,冗余要正确

4、如果必要,库中数据与冗余数据要来源不一致


正确认识冗余:

主键与外键在多表中的重复出现, 不属于数据冗余,这个概念必须清楚,事实上有许多人还不清楚。非键字段的重复出现, 才是数据冗余!而且是一种低级冗余,即重复性的冗余。高级冗余不是字段的重复出现,而是字段的派生出现。

〖例〗:商品中的“单价、数量、金额”三个字段,“金额”就是由“单价”乘以“数量”派生出来的,它就是冗余,而且是一种高级冗余。冗余的目的是为了提高处理速度。只有低级冗余才会增加数据的不一致性,因为同一数据,可能从不同时间、地点、角色上多次录入。因此,我们提倡高级冗余(派生性冗余),反对低级冗余(重复性冗余)。


原创粉丝点击