我们正处于构建SQL 2008 R2上的大型C#MVC2应用程序(我们还将Sharp架构和Nhibernate作为生态系统的一部分)的早期阶段,其中一个要求是所有数据库行版本都可以在给定的时间段内访问历史.
我们玩弄了类似于以下布局的想法:
id(PK)
recordId
versionId
并且使用相同的recordId和递增的versionId创建新记录中的每个编辑记录结果.然后记录显示将按照SELECT ... WHERE recordId = X AND versionId = MAX(versionId)的内容完成.
每个事务的快照都不起作用(太多了?并且无法从应用程序中轻松访问).
但我们很好奇其他实施方案是否已成功尝试,或者我们的提案存在潜在问题.