【发布时间】:2019-10-14 03:42:41
【问题描述】:
我正在 react-native + Cloud Firestore 中开发一个应用程序,旨在为每个填写表格的用户生成随机数/票证。这些号码将允许用户参与电子彩票并竞争促销奖品。
这些数字应按系列分隔,例如:
Series 1 - numbers can range from 0 to 99,999 thousand.
Series 2 - numbers can range from 0 to 99,999 thousand.
Series N - numbers can range from 0 to 99,999 thousand.
系统要求是:
- 必须维护为每个用户生成的系列和号码(为客户保存的号码);
- 每个促销活动还必须包含生成的数字和系列(促销活动中生成的数字,总计);
在 Cloud Firestore 的第一个结构中,我们创建了如下结构:
Promotion - Series - Number
(random doc) - 01 - 00131 ...
(random doc) - 01 - 97879 ...
(random doc) - 09 - 99999
Promotion是一个集合,Series是一个promotion子集合,Number是一个Series子集合。
但是,通过这种方式,已经在 firestore API 中进行了许多查询,例如,获取要在系列中生成的可用编号,从而可以生成新编号。
我们发现的另一种方法是,数字的子集合可以是 Series 集合中的数组。这将减少查询。
100,000 个数字数组是否会超过最大 1mb 文档大小? 它可以用于带有 map 的结构,例如,写入超出数量的其他属性,如下所示:
Promotion - Series - Numbers: Map?
【问题讨论】:
-
你也应该把标题翻译成英文!
-
如果您唯一的问题是 100,000 个数字是否适合一个数组,那听起来您可以自己轻松尝试。
标签: database firebase google-cloud-platform google-cloud-firestore data-modeling