我需要执行某种审计。我们希望在记录插入,更新,删除或打开时进行存储。如何设计一个好的审计算法?
现在我已经创建了一个简单的方法在Singleton类:
public void Audit(string audit, AuditTypes type)
{
AuditEntry = new AuditEntry(){ Audit = audit, TypeId = (int)type };
// some logic to commit the audit entry to the database
}
public enum AuditTypes
{
Insert = 1,
Update = 2,
Delete = 3
Open = 4
}
某处在形式我调用这个方法:
MyForm.cs:
private void RemoveSomeObject(SomeObject myObject)
{
/* Do some stuff that removes the object*/
MySingleton.GetInstance().Audit(myObject.Title, AuditTypes.Delete)
}
对于一些原因,我不认为这是要走的路,因为在代码中的任何地方使用这种方法我都有这种线。
我认为做更多的面向对象的方式会更聪明,您怎么看? 编辑:
我做日志的用户名和日期,但我没有发现它相关的通知。
我不知道这是否是一个选项,但在过去,我一直在使用插入/更新/删除触发器对*表进行审计的系统* _audit版本的表格。 – asawyer 2012-02-03 13:41:57
哪个RDBMS?审计数据变化*真的*属于数据库... – Yuck 2012-02-03 13:42:19
他甚至没有提到一个数据库,为什么假设有一个数据库?这可能是我们所知道的一个Twitter spambot。 – Aidan 2012-02-03 13:46:28