如何解决哪个是更好的 Firestore 架构方案?
我正在使用 Firebase Firestore 构建一个应用程序,该应用程序将允许用户在栏中打开选项卡。我可能会使用两种数据库模式。我很好奇考虑到 where()
查询的时间复杂性以及任何其他建议的最佳选择。
场景 A:
使用一个 Bills
集合设置 Firestore。每当用户在栏中打开选项卡时,创建一个文档,文档中包含 status: true
字段(表示它是一个打开的选项卡)。每当用户关闭选项卡时,该字段就会切换到 status: false
。这是一个非常简单的解决方案,因为它只允许在选项卡关闭时切换一个字段,尽管 Bills
集合可能会变得非常大并且 Firestore 以后查询可能很麻烦。
场景 B:
使用两个集合设置 Firestore:Open Bills
和 Closed Bills
。每当用户打开一个选项卡时,就会在 Open Bills
集合下创建一个文档。正如您所料,每当用户关闭他们的帐单时,它就会从 Open Bills
中删除并在 Closed Bills
中创建。它本质上就像是从一个移动到另一个,但遗憾的是 Firestore 中没有移动功能。这是我倾向于使用的解决方案,因为如果要扩展它可能会减少查询时间,但在写入和删除操作方面会引入潜在的失败。
解决方法
Firestore 查询随结果集的大小而缩放。如果您返回 100 个结果,则查询 1,000 个文档的集合与查询 10,000,000 个文档的结果大致相同。
在不知道更多细节的情况下,选项 A 似乎是一个完全合理的方法。我建议的一件事是:不要对状态使用布尔值。现在你认为你有两个状态(开放/关闭),但如果未来还有更多(开放/关闭/付费)怎么办?
可能是 state
字段可以是 open
| closed
暂时还可以。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。