数据库 – 为数据库应用程序留下审计跟踪/更改历史记录的有效策略?

人们在相当复杂的数据库中维护数据更改历史记录的成功策略是什么?我经常使用和开发的应用程序之一可以真正受益于更全面的跟踪记录如何随时间变化的方式。例如,现在记录可以有多个时间戳和修改用户字段,但是我们目前没有用于记录多个更改的方案,例如,如果回滚操作。在完美的世界中,可以在每次保存之后重建记录,等等。

DB上的一些信息:

>需要有能力每周增加数千条记录
> 50-60表
>主修订表每个可能有数百万条记录
>合理数量的外键和索引设置
>使用Postgresql 8.x.

解决方法

在过去,我使用触发器来构建db update / insert / delete日志记录。

每次在特定表上执行上述操作之一时,您都可以将记录插入到记录表中,该记录表跟踪操作,db用户执行的操作,时间戳,预先执行的表以及之前的值。

可能有一个更好的答案,因为这将要求您在我认为实际执行删除或更新之前缓存该值。但你可以用它来做回滚。

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...