我想爲ASP.NET MVC網站設置一個SQL服務器數據庫,它將同時存儲最新信息以及所有數據更改的歷史記錄。我應該如何在數據庫中設置一個表來保留記錄的歷史記錄?
我的網站信息來自用戶上傳的XML文件。該站點解析XML並將包含的信息寫入站點數據庫。連續上傳中的元素可能實際上代表相同的事物,但某些數據可能已更改。就像我之前說過的,我想跟蹤每個版本。
下表顯示了我正在考慮接近這一點的一種方式。我會爲每個上傳中的每個項目創建重複記錄。與之前上傳的項目相匹配的新項目將被分配相同的ID,但每個項目將被分配到唯一的上傳ID。
Upload 1: Erik and Sara are added
Upload 2: Erik renamed to Eric, Bill added
Upload 3: Sarah grew 2" taller, Eric was removed.
[PERSONS TABLE]
PersonID Name Height UploadID
1 Erik 71 1
1 Eric 71 2
2 Sarah 70 1
2 Sarah 70 2
2 Sarah 72 3
3 Bill 76 2
3 Bill 76 3
[UPLOADS TABLE]
UploadID UploadTime
1 3/09/2011
2 4/01/2011
3 4/11/2011
但是,這似乎不是我的最佳解決方案,因爲有多少信息最終在數據庫中被複制。有沒有更好的方法來處理這種情況,只有每次上傳才能保存更改?