人们在相当复杂的
数据库中维护数据更改历史记录的成功策略是什么?我经常使用和开发的应用程序之一可以真正受益于更全面的跟踪记录如何随时间变化的方式。例如,现在记录可以有多个时间戳和
修改的
用户字段,但是我们目前没有用于记录多个更改的方案,例如,如果回滚操作。在完美的世界中,可以在每次保存之后重建记录,等等。
DB上的一些信息:
>需要有能力每周增加数千条记录
> 50-60表
>主修订表每个可能有数百万条记录
>合理数量的外键和索引设置
>使用Postgresql 8.x.
在过去,我使用触发器来构建db update / insert / delete日志记录。
每次在特定表上执行上述操作之一时,您都可以将记录插入到记录表中,该记录表跟踪操作,db用户执行的操作,时间戳,预先执行的表以及之前的值。
可能有一个更好的答案,因为这将要求您在我认为实际执行删除或更新之前缓存该值。但你可以用它来做回滚。