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

Posted

tags:

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

根据实际的业务需求,许多数据需要永久的保存,并且不随之后的一个数据的改变而影响其他数据,举一个例子,电商系统中的订单,订单中包括你买的商品A价格100,n天后A可能价格下降至90,那么你订单价格会是90吗?怎么解决?我的答案是:直接在订单表里加入价格字段,每次生成订单记录时都写入价格即可。我觉得如果类似“价格”这种字段如果太多的话,可以考虑新建一个存放历史记录表。需要注意,这里的“价格”并不是我们在进行数据库设计时的所谓冗余字段。冗余字段说的为了系统的查询效率而牺牲一些空间的反范式设计,它的特点是跟随主表的变化而变化,此例中如果“价格”是冗余字段那么它会随商品价格的变化而变化,这显然不是我们期望的结果。所以历史数据,冗余字段一定要根据我们的实际业务来进行最合理的设计。

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

mysql 分表 和 数据冗余

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

数据库的冗余字段

主键ID是什么,做什么用的?(能够唯一表示数据表中的每个记录,防止数据冲突,冗余)

数据库冗余字段思考

求SQL语句,去除冗余