gpt4 book ai didi

versioning - CouchDB 版本控制策略

转载 作者:行者123 更新时间:2023-12-03 11:54:15 25 4
gpt4 key购买 nike

以下是否是实现版本控制的可行策略(使用“示例”作为示例文档类型):

拥有一份原始文档,其中类型字段名为 example_original。

文档的后续更改都以 example_change 类型和 example_original 文档的 id 作为键。更改还将带有时间戳。

保留一个类型为 example_current 的文档,该文档是 example_original 的结果,所有 example_change “已应用”。一个新的 example_change 文档将自动应用于该文档。

查找特定版本将包括检索 example_original 文档并应用所需的更改(主要是到某个时间戳,但也可能是许多更改)。

我应该提一下,我的用例将涉及对原始用例的有限数量的更改。大多数更新将包含新的原始文档。虽然这是我当前的用例,但如果涉及到许多更改,我也会对可能导致的问题感兴趣。

您认为这种方法有哪些优点和缺点?

最佳答案

使用 CouchDB 进行版本控制的策略是永远不要压缩包含您需要保留完整历史记录的文档的数据库。您仍然可以压缩其他数据库。这个简单的策略现在可以通过编辑冲突解决策略开箱即用。

删除文档可以通过编写没有内容但删除属性集的新版本来完成。

分支不能以这种方式完成,因为版本控制机制提供了一个单一的修订线程。

现在对于 CouchDB 可能的 future :

  • 今天,每个修订版都包含一份完整的文档副本,但人们可能会认为 CouchDB 引擎的优化有朝一日可以存储增量。
  • 将来 CouchDB 也有可能提供一个 API 来防止某些文档类型的压缩。这将允许将所有文档保存在同一个数据库中。这将是 CouchDB 的一个简单补丁。
  • 这种策略确实可以管理文档分支,但考虑到 CouchDB 作为文档数据库的性质,这是一种合理但长期的可能性。
  • 关于versioning - CouchDB 版本控制策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1333922/

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