美文网首页
NoSQL数据模型设计 - 特殊应用建模 - 数据版本

NoSQL数据模型设计 - 特殊应用建模 - 数据版本

作者: 李桐2000 | 来源:发表于2020-10-02 09:44 被阅读0次

本文为NoSQL数据模型设计系列的一部分。

此模式使用版本号记录文档结构的变动,方便应用程序针对不同版本的文档进行不同操作。

增加schema_version字段在文档中,并在第一次修改结构时,给其赋值2。以后每次结构变动,同时增加这个字段。应用程序读取schema_version字段,根据它的值做相应的操作。

例如下面的user文档初始版本为

// users collection

{
    "_id": "<ObjectId>",
    "galactic_id": 123,
    "name": "Anakin Skywalker",
    "phone": "503-555-0000",
}

增加更多字段,同时引入schema_version字段

// users collection

{
    "_id": "<ObjectId>",
    "galactic_id": 123,
    "name": "Darth Vader",
    "contact_method": {
        "work": "503-555-0210",
        "home": "503-555-0220",
        "twitter": "@realdarthvader",
        "skype": "AlwaysWithYou"
    },
    "schema_version": "2"
}

应用程序判断schema_version是否存在,如果不存在,通过phone字段获取电话。否则,则通过contract_method.work和contract_method.home获取电话。

此模式可用于下列场景

  • 系统不允许停机
  • 更新文档结构需要耗费大量时间
  • 不强制更新到最新结构

完整内容请查看NoSQL数据模型设计系列

相关文章

网友评论

      本文标题:NoSQL数据模型设计 - 特殊应用建模 - 数据版本

      本文链接:https://www.haomeiwen.com/subject/krrcuktx.html