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

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

如果经常需要获取保存数据的某个计算结果,并且读次数远多于写次数,可以采用计算模式。

计算模式

应用将计算结果保存在一个单独字段中,需要时直接使用,不用再反复计算。如果写操作并不频繁,可以在在写的同时更新计算结果值,反之,应通过定时任务更新计算值。

考虑下面影屏集合

// screenings collection

{
    "theater": "Alger Cinema",
    "location": "Lakeview, OR",
    "movie_title": "Reservoir Dogs",
    "num_viewers": 344,
    "revenue": 3440
}
{
    "theater": "City Cinema",
    "location": "New York, NY",
    "movie_title": "Reservoir Dogs",
    "num_viewers": 1496,
    "revenue": 22440
}
{
    "theater": "Overland Park Cinema",
    "location": "Boise, ID",
    "movie_title": "Reservoir Dogs",
    "num_viewers": 760,
    "revenue": 7600
}

针对某个电影,经常需要查询总观影人数和总销售额。为了避免每次都计算这些汇总值,使用计算模式计算好这些汇总值,并存入电影集合。

// movies collection

{
    "title": "Reservoir Dogs",
    "total_viewers": 2600,
    "total_revenue": 33480,
    ...
}

如果系统数据更新不频繁,可在更新影屏数据时同时更新电影数据。如果数据更新频繁,应定时例如每小时计算电影数据。

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。