我的客户希望在列级维护审核。他想要一张存储所有审计的表格,即列级别。我决定采用桌面结构。即
id,tablename,tablecolumn,primarkey,oldvalue,newvalue,date
但我想知道如何检查每个列级别的更改。我是否必须像old.columnname<>一样手动检查每一个。 new.columnname然后添加到审计表?
还有其他办法吗?
答案 0 :(得分:1)
当我被赋予相同的任务时,我已经创建了几个存储过程来修改表数据和限制表上的CUD操作,以强制用户只使用存储过程。
SP实际上正在执行请求的操作(即创建,更新或删除表中的一行),并为每个操作在审计表中添加一行。
从数据库优化的角度来看,这可能效率很低,但我认为它可以为您提供最多的审计,因为更新操作和审计会自动放入事务中,如果不添加审计条目,则无法完成更新。