数据库设计中维护修订历史记录的一般策略是什么?如果只是我要处理的一张 table ,我认为它不会那么难。只需将每个更新另存为表中的新记录即可。最后的记录将始终是最新的修订。

但是,当数据存储在多个表中时,什么是设计它以便跟踪修订的好方法呢?

最佳答案

我更喜欢为每个版本表添加额外的历史表。与主表的结构相同,带有time_fromtime_to附加字段。
透明地填充触发器。最新修订版的time_to设置为遥远的将来。

可以使用以下查询来检索指定时刻的状态:

SELECT * FROM user_history
WHERE time_from >= '2012-02-01' AND time_to <= '2012-02-01'

对我而言,将历史记录存储在主表中通常不是一个好主意,因为在检索或合并当前数据时需要复杂的条件。

关于mysql - 数据库设计: how to track history?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11294292/

10-14 10:59
查看更多