2011-11-10 361 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