牛叔叔 的笔记

好好学习

2023-01-31 12:31

文档版本模式--MongoDB数据模型设计模式

牛叔叔

数据库

(421)

(0)

收藏

示例描述

文档版本控制模式在高度规范化的行业中非常有用,这些行业会要求数据的特定时间点版本。

假设现在有一个博客系统,其中有一个记录每次编辑博客文章历史的功能,这样的功能就能应用文档版本控制模式。

假设我们将所有的文章历史都存储在同一个集合当中,则需要考虑大部分与文章相关的功能都要过滤掉历史版本、版本越多则集合文档数量越多等等问题。

文档版本控制模式的想法是:文档中需要记录一个文档的版本,将最新的文档保存在一个 current 集合中,而那些旧版本的文档保存在 history 集合中。

为了最大化利用文档版本控制模式的优势,通常会假设数据访问模式尽量符合以下要求:

  • 每个文档不会有太多的修订版本

  • 需要做版本控制的文档不会太多

  • 大多数的查询都是基于文档的最新版本

优缺点

文档版本控制模式的优点如下:

  • 容易实现,对现有系统的影响小

  • 在最新版本上进行请求时,没有性能上的影响

文档版本控制模式的缺点如下:

  • 写操作的数量会翻倍

  • 请求需要被定位到正确的集合


0条评论

点击登录参与评论