需求
最近收到一个业务需求,需求是基于电影票售卖的不同渠道价格存储。某一个场次的电影,不同的销售渠道对应不同的价格。整理需求为:
- 数据字段:
-
场次信息;
- 播放影片信息;
- 渠道信息,与其对应的价格;
- 渠道数量最多几十个;
业务查询有两种:
- 根据电影场次,查询某一个渠道的价格;
- 根据渠道信息,查询对应的所有场次信息;
建模
不好的
我们先来看其中一种典型的不好建模设计:
1
2
3
4
5
6
7
8
9
10 1{
2 "scheduleId": "0001",
3 "movie": "你的名字",
4 "price": {
5 "gewala": 30,
6 "maoyan": 50,
7 "taopiao": 20
8 }
9}
10
数据表达上基本没有字段冗余,非常紧凑。再来看业务查询能力:
根据电影场次,查询某一个渠道的价格;
- 建立createIndex({scheduleId:1, movie