我在桌子上做一个审计跟踪说客户表
Customer c1=new Customer(){name="customer1" ,job="IT",city="USA"};
说我是否正在对客户表进行更新,我正在将客户城市更新为加拿大
c1.city="CANADA";
所以我要做的就是在表格中审核这个,
CustomerID 1
fieldname city
oldvalue USA
Newvalue CANADA
依此类推....更新任何字段。
我的问题是,我说我不仅仅有菲尔兹,我该如何实现呢?
如何比较旧记录与更新记录以检查哪个字段已更改。如何在记录表中捕获已更改的字段并保存它们
答案 0 :(得分:1)
我不会。使用数据库触发器,以便无论何时在相关表上运行UPDATE,都会捕获更新前行的状态并将其放入审计表中。
答案 1 :(得分:0)
我过去所做的是使用存储过程来处理数据事务。在存储过程中,我会在更新目标表之前将要更改的行插入到审计表中。但是,审计表并不是最容易阅读的,因为每次用户单击保存按钮时,它都会创建一个审计记录,但是它比准确地比较每一行值更准确,代码/复杂程度要低得多。 “改变了。对于我们必须进入审计跟踪的次数,不值得进行列级别比较的额外工作。我们的审计试验更多的是捕获已更改的数据,以便我们可以在需要时将其还原,尽管我们捕获了谁以及何时也是。