我想为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
但是,这似乎不是我的最佳解决方案,因为有多少信息最终在数据库中被复制。有没有更好的方法来处理这种情况,只有每次上传才能保存更改?