2011-11-10 319 views
0

我在asp.net MVC 3网站上工作,我需要跟踪对表/实体所做的任何更改。无论何时在编辑视图中修改某个项目,更改列表将随日期一起显示,并在该编辑视图下方进行更改。我是否需要用entityHistory Name创建另一个表,或者我需要在同一个表中插入另一个记录?更改历史记录表

请建议

+0

“任何”的变化而变化类似于CDC?他们通常被称为“审计表”,这取决于您的设计存储值或增量。但对桌子本身的改变是不同的。 –

+0

我的意思是当一个人更新名字,然后我需要跟踪该名字在这个日期从这个值更改为newValue。 IT用于一列 – DotnetSparrow

+0

SQL Server 2008具有审计功能,但使用单独表的自定义内容很常见。 –

回答

0

取决于你想要做的历史数据。如果您想要显示记录或对象图快照,我发现创建一个历史记录表(与当前表格相同的列)可以更容易地构建完整记录在某个特定更改之后或之后的工作方式。这也意味着你会有重复的表和数据。

如果您的需求是纯粹的审计需求,那么拥有一个/两个包含实体,属性,旧值和新值列的数据的表更容易。

0

而且审计选项,SQL Server有现在的特征CDC(在SQL2008变更数据捕获),它使开发人员使用触发器跟踪某个SQL表

数据的变化,您可以建立一个类似的记录机制(参见http://www.kodyaz.com/articles/sql-trigger-sql-server-trigger-example-to-log-changes-history.aspx为样本)

您还可以检查用于记录数据的增强解决方案在下面的文章SQL2005 http://www.kodyaz.com/articles/log-data-changes-using-change-data-capture-for-sql-server-2005.aspx