【问题标题】:Are there any database implementations which keep all history?是否有任何数据库实现可以保留所有历史记录?
【发布时间】:2010-11-08 15:11:09
【问题描述】:

为您的源代码使用版本控制系统(如subversion)是有意义的,因为它可以让您退出错误、审核更改、制作无痛快照、准确发现问题所在,从而改进您的流程等等。出于同样的原因,对业务数据进行更改跟踪是有意义的,许多系统都这样做。

关于如何在普通数据库之上实现这一点已经存在一些问题:

对于一个如此有用和受欢迎的功能,我们都需要重新发明轮子似乎很奇怪。 是否有任何现有的数据库实现已经解决了这个问题?我想象这样的系统将扩展 SQL 语法以允许轻松查询历史记录。

【问题讨论】:

    标签: database version-control


    【解决方案1】:

    空间要求太高了,所以这就是为什么您通常自己滚动。

    有不同的解决方案,具体取决于您的工具包:

    【讨论】:

    • 这没有意义。是的,这样的数据库本质上是庞大的。为什么这意味着你应该自己推出呢?
    • 自己动手 - 自己实现。
    • 我知道自己滚是什么意思。问题是为什么。
    • @Matthew Flaschen - 我误读了你的问题,抱歉。我的意思是说,在我看来,这是一种很难准确指定归档内容/方式/归档时间/位置的情况,因此没有可用的通用实现,因此解决方案是定制的。
    【解决方案2】:

    看看temporal databases,比如TimeDB

    【讨论】:

    • +1 为这个概念命名,这样我终于可以得到一些相关的谷歌点击:-)
    【解决方案3】:

    不是关系数据库(您没有说它必须是),但CouchDB 内置了版本控制。

    【讨论】:

    • +1 有趣。一种非常新颖的方法来解决存储和查询数据的整个问题。
    【解决方案4】:

    鉴于大多数国家/地区都要求记录所有会计交易,因此每个数据库都可以让您记录历史以供审计。

    【讨论】:

    • 我在寻找“让你查询历史”,而不是“让你记录历史”。
    • 如果您的原始架构有时间戳,这不是问题。如果您的原始架构没有,请加载添加它们的历史记录。
    【解决方案5】:

    就数据而言,我相信它被称为"change data capture"。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-09
      • 1970-01-01
      • 2013-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多