【发布时间】:2011-04-11 19:37:29
【问题描述】:
我正在尝试为 ASP.NET MVC 站点设置 SQL Server 数据库,该数据库将存储最新信息以及所有数据更改的历史记录。
我网站的信息来自用户上传的 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
但是,这对我来说似乎不是最佳解决方案,因为有多少信息最终会在数据库中重复。有没有更好的方法来解决这个问题,每次上传时只保存更改?
【问题讨论】:
标签: history relational-database database-design