我在asp.net MVC 3网站上工作,我需要跟踪对表/实体所做的任何更改。每当在“编辑”视图中修改某些内容时,将显示一个更改列表,其中包含日期,更改列在“编辑”视图下方。我是否需要使用entityHistory Name创建另一个表,或者我需要在同一个表中插入另一个记录?
请建议
答案 0 :(得分:0)
取决于您要对历史数据执行的操作。如果要显示记录或对象图快照,我发现创建一个历史记录表,其列与当前表相同,更容易用于构建完整记录在特定更改之后或之前的处理方式。这也意味着您将拥有重复的表和数据。
如果您的需求是纯审计要求,则更容易拥有一个/两个表,其中包含实体,属性,旧值和新值列的数据。
答案 1 :(得分:0)
除了审计选项,SQL Server现在具有CDC(SQL2008中的更改数据捕获)功能,使开发人员能够跟踪sql表上的数据更改
您可以使用触发器构建类似的日志记录机制(请参阅http://www.kodyaz.com/articles/sql-trigger-sql-server-trigger-example-to-log-changes-history.aspx获取示例)
您还可以查看以下文章,了解用于记录数据更改的增强解决方案,类似于SQL2005中的CDC http://www.kodyaz.com/articles/log-data-changes-using-change-data-capture-for-sql-server-2005.aspx