哪个是更好的Firestore模式方案?

devon66h

我正在使用Firebase Firestore构建一个应用程序,该应用程序将允许用户在栏中打开选项卡。我可能会使用两种数据库模式。我很好奇,哪一种方法最好考虑到where()查询的时间复杂性以及其他建议。

方案A:

用一个Bills集合设置Firestore 每当用户在栏上打开选项卡时,请在文档中创建带有字段status: true的文档(将其表示为打开的选项卡)。每当用户关闭选项卡时,该字段就会切换为status: false这是一种非常简单的解决方案,因为它仅在关闭选项卡时仅允许切换一个字段,尽管Bills集合可能会变得非常庞大,并且可能使Firestore在以后查询时很麻烦。

方案B:

使用以下两个集合设置Firestore:Open BillsClosed Bills每当用户打开选项卡时,都会在Open Bills集合下创建一个文档如您所料,每当用户关闭帐单时,便会从中删除帐单Open Bills并在中创建帐单Closed Bills本质上就像是从一个移动到另一个,但不幸的是,Firestore中没有移动功能。这是我所追求的解决方案,因为如果要扩展它,则可能会减少查询时间,但在写入和删除操作方面会带来潜在的故障。

迈克尔·布莱利

Firestore查询根据结果集的大小进行扩展。如果返回100个结果,则查询1,000个文档的集合将与查询10,000,000个文档的查询大致相同。

在不了解更多细节的情况下,选项A似乎是一种完全合理的方法。我建议的一件事:不要为状态使用布尔值。现在,您认为自己有两种状态(开放/关闭/关闭),但是如果将来有更多状态(开放/关闭/收费)怎么办?

也许一个state字段,可open| closed现在将是一条路。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

异步设计模式-哪个更好?

来自分类Dev

异步设计模式-哪个更好?

来自分类Dev

Javascript模块化设计模式-哪个更好:自调用函数还是对象文字方法?

来自分类Dev

哪种解决方案在生产模式下更好。分叉还是新存储库?

来自分类Dev

哪个更好的选择?

来自分类Dev

以下哪个代码更好?

来自分类Dev

哪个更好:PooledConnectionFactory或CachingConnectionFactory?

来自分类Dev

哪个表现更好

来自分类Dev

在python中哪个更好?

来自分类Dev

回形针或CarrierWave哪个更好?

来自分类Dev

哪个网址格式更好?

来自分类Dev

Viewgroup或Layout哪个更好

来自分类Dev

哪个框架更好?

来自分类Dev

哪个更好?比较

来自分类Dev

哪个SQL语句更好?

来自分类Dev

哪个更好:解析还是AWS

来自分类Dev

哪个是更好的搜索算法?

来自分类Dev

哪个更好:setDefaultHighRepJobPolicyUnappliedJobPercentage(100)与CustomHighRepJobPolicy

来自分类Dev

哪个是更好的Get成员方法?

来自分类Dev

链表的结构或类哪个更好?

来自分类Dev

比较日期<或DateDiff哪个更好?

来自分类Dev

ACRA vs UncaughtExceptionHandler哪个更好?

来自分类Dev

Rails模型方法:哪个更好?

来自分类Dev

Jdbc表设计哪个更好

来自分类Dev

SQL Index性能,哪个更好?

来自分类Dev

哪个是训练图像的更好方法

来自分类Dev

哪个更好的规范化?

来自分类Dev

哪个更好的方法?变量相关

来自分类Dev

哪个更好:解析还是AWS