gpt4 book ai didi

javascript - 如何在 firestore 中存储重复数据?

转载 作者:搜寻专家 更新时间:2023-11-01 00:50:16 24 4
gpt4 key购买 nike

我一直在使用 firebase RTDB,我打算将它迁移到 firestore。

我有与许多其他 Node 关联的 userId。

例如,我有用户消息购买

为了将用户与其他集合相关联,我有 users_messages/$date/$userId/$messageIdpurchases/$date/$userId/$purchaseId,因为 RTDB不支持复杂查询,我希望能够查询特定用户日期范围内的消息。

现在我意识到,在数据查询方面,firestore 比 RTDB 好得多,并且有 messagespurchases 集合以及 date用户

在这种情况下,我应该将 userId 还是整个 user 文档存储在 messagespurchases 集合中?

最佳答案

一般来说,在 NoSQL 数据库中存储重复数据的最佳方式完全取决于项目的要求。没有一种适合所有人的正确解决方案。

你必须问一些关于你想复制的数据的问题:

  1. 它是静态的,还是会随着时间而改变?
  2. 如果它确实发生了变化,您是否需要更新每个重复的数据实例,以便它们都保持同步?
  3. 您是针对性能还是成本进行优化?

如果您的重复数据需要更改并保持同步,那么您可能很难使所有这些重复数据保持最新,并且您可能会花费大量金钱来使所有这些文档保持最新,因为这需要读取并为每个文档的每个更改编写。

如果您需要非常快的查询,您可能希望复制更多数据,以便客户端只需为每个查询项目读取一个文档,而不是多个文档。但是您也可以依靠本地客户端缓存来降低成本,具体取决于客户端必须读取的数据。

最后,对于是否复制某些数据,您的选择很大程度上取决于您的数据及其特性。您必须逐案考虑。

关于javascript - 如何在 firestore 中存储重复数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52927341/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com