我的客户希望维持栏目级别的审计。他想要一个存储所有审计的表,即在列级别。我已经决定了表结构。即
id,tablename,tablecolumn,primarkey,oldvalue,newvalue,date
但我想知道如何检查每个列级别的更改。我是否必须像 old.columnname <> new.columnname 一样手动检查每一项,然后添加到审核表中?
还有其他办法吗?
最佳答案
当我接受相同的任务时,我创建了多个存储过程来修改表数据,并限制表上的 CUD 操作以强制用户仅使用存储过程。
SP 实际上正在执行请求的操作(即创建、更新或删除表中的行),并为每个操作向审核表添加一行。
从数据库优化的角度来看,这可能非常低效,但我认为它为您提供了最多的审核,因为更新操作和审核会自动放入事务中,并且如果不添加审核条目就无法完成更新。
关于mysql - 在mysql表中记录列级别的变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15475838/