gpt4 book ai didi

c# - 如何实现历史版本控制?

转载 作者:太空狗 更新时间:2023-10-30 00:03:59 26 4
gpt4 key购买 nike

我们正处于在 SQL 2008 R2 上构建大型 C# MVC2 应用程序(我们还采用 Sharp 架构和 Nhibernate 作为生态系统的一部分)的早期阶段,其中一项要求是所有数据库行版本都可以访问给定的历史时期。

我们考虑过类似布局的想法:

id (PK)
记录编号
版本号

并且对记录的每次编辑都会导致创建具有相同 recordId 和递增 versionId 的新记录。然后记录显示将通过 SELECT ... WHERE recordId = X AND versionId = MAX(versionId)

对每笔交易都进行快照是行不通的(太多了?而且不容易从应用程序内部访问)。

但我们很好奇还有哪些其他实现已成功尝试,或者我们的提案存在潜在问题。

最佳答案

您似乎在暗示临时表。三种方法:

有效状态表:附加两个“时间戳”列(例如 DATETIME 类型),一个指定该行何时生效,另一个指定该行何时停止生效valid,中间时间为该行的有效期

事务时间状态表:将每一行与该行在受监控表中出现的时间段相关联,从而允许重建受监控表在任何先前时间点的状态.

双时态表:同时捕捉有效时间和交易时间,同时记录企业的历史,同时捕捉该历史记录的变化顺序。

来源:Developing Time-Oriented Database Applications in SQL (Richard T Snodgrass) .

关于c# - 如何实现历史版本控制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3208064/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com