gpt4 book ai didi

java - MongoDB实现保存历史对象变化的数据库结构

转载 作者:行者123 更新时间:2023-12-01 09:43:25 25 4
gpt4 key购买 nike

我想在Mongodb中保存一些对象以及它们之间的关系的信息。还需要保存历史中的所有更改对象,并能够查看对象过去的状态。
现在,我将对象的实际版本保存在各个集合中,并使用单独的各个集合进行更改(使用对象 ID 和更改时间),并通过按时间使用所有更改来收集过去对象的状态。
我觉得我正在这里发明自行车,并且有更好的数据库结构或现有框架可以更轻松地做到这一点。有人可以推荐一些东西吗?非常感谢,谢谢。

最佳答案

这通常称为“版本控制”或“文档版本控制”。最常见的方法是:

  1. 在同一个集合中为每次写入存储完整文档,使用某种方案来确定哪个版本是“当前”
  2. 为每次写入存储完整文档,将“当前”版本存储在一个集合中,将旧版本存储在单独的集合中
  3. 将所有文档版本存储在单个文档中
  4. 仅存储每个版本的增量(更改)

每种方法都有其自己的优点和缺点。以下是一些对这些方法进行进一步探索的好资源:

我不知道有任何流行的框架可以在 Java 中处理这个问题,这也可能取决于您是否使用 ODM(例如 Spring Data MongoDB 或 Morphia)。 Mongooose (Node.js) 确实有 document versioning .

关于java - MongoDB实现保存历史对象变化的数据库结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38271240/

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