Javascript 哪个是更好的Firestore模式场景?
我正在使用Firebase Firestore构建一个应用程序,该应用程序将允许用户在酒吧中打开选项卡。我可能会使用两种数据库模式。考虑到Javascript 哪个是更好的Firestore模式场景?,javascript,database,firebase,google-cloud-firestore,schema,Javascript,Database,Firebase,Google Cloud Firestore,Schema,我正在使用Firebase Firestore构建一个应用程序,该应用程序将允许用户在酒吧中打开选项卡。我可能会使用两种数据库模式。考虑到where()查询的时间复杂性以及其他建议,我很好奇哪一个是最好的 场景A: 使用一个票据集合设置Firestore。每当用户在条形图上打开选项卡时,在文档中创建一个字段status:true(表示它是一个打开的选项卡)。每当用户关闭选项卡时,该字段就会切换到状态:false。这是一个非常简单的解决方案,因为它只允许在关闭选项卡时切换一个字段,尽管票据收集可能
where()
查询的时间复杂性以及其他建议,我很好奇哪一个是最好的
场景A:
使用一个票据集合设置Firestore。每当用户在条形图上打开选项卡时,在文档中创建一个字段status:true
(表示它是一个打开的选项卡)。每当用户关闭选项卡时,该字段就会切换到状态:false
。这是一个非常简单的解决方案,因为它只允许在关闭选项卡时切换一个字段,尽管票据
收集可能会变得非常大,并且可能会很麻烦,以便Firestore稍后查询
场景B:
将Firestore设置为两个集合:未结票据
和已结票据
。每当用户打开选项卡时,都会在Open Bills
集合下创建一个文档。正如您所料,每当用户关闭其账单时,它都会从打开的账单
中删除,并在关闭的账单
中创建。它本质上就像是从一个移动到另一个,但不幸的是Firestore中没有移动功能。这是我倾向于使用的解决方案,因为如果它进行扩展,可能会减少查询时间,但在写入和删除操作时会导致潜在的失败。Firestore查询会随着结果集的大小进行扩展。如果返回100个结果,则对1000个文档集合的查询将与对10000000个文档的查询大致相同
在不了解更多细节的情况下,选项A似乎是一种完全合理的方法。我建议的一件事是:不要对状态使用布尔值。现在你认为你有两个州(开放/关闭),但如果未来还有更多的州(开放/关闭/付费)呢
也许一个状态
字段现在可以打开
|关闭
是一种方法