我们正在SQL 2008 R2上构建大型C#MVC2应用程序(我们也使用Sharp体系结构和Nhibernate作为生态系统的一部分)的早期阶段,其中一个要求是所有数据库行版本都可以访问给定的历史时期。如何实现历史版本?
我们玩弄类似布局的思路:
ID(PK)
的recordId
VERSIONID
,并具有一个新的记录每个编辑,达到创纪录的结果正与创造相同的recordId和递增的versionId。然后,记录显示将按照SELECT ... WHERE recordId = X AND versionId = MAX(versionId)的顺序完成一些操作。
每个事务的快照都不起作用(太多了?并且不能从应用程序中轻松访问)。
但是我们很好奇其他实现方式是否已经尝试成功,或者存在潜在的问题。
Robert,请在标签中标明“MSSQL,C#4,NHib,Sharp Arch”等标签。 – 2010-07-11 05:36:10