两个用例的 Firestore 数据结构
Firestore data structure for two use cases
我希望获得有关如何构建应用程序中存储的数据的指导。虽然第一种方式有一些原因,但我担心它无法在第二种情况下有效运行。
简化后,该应用程序将包含按州划分的地点列表。主要用例是查看选定州内的地点。第二个用例是个人用户可以将他们喜欢的特定地点保存到他们的个人资料中并一次查看所有地点(在一个列表中显示所有州地点)。
选项 1- 地点保存在一个“地点”集合中,其中有一个字段“州”。
主要用途:为了按州显示这些地点,应用程序将查询“州”字段与州匹配的位置。
二次使用:当用户保存地点时,应用程序会将每个地点的docID
保存到用户的个人资料中,每个地点都需要检索以显示地点列表。
选项 2- 每个州有一个集合。
主要用途:为了按州显示这些地点,应用程序会提取查询中的所有文档并将它们列出来。
二次使用:当用户将地点保存到用户个人资料时,应用程序会将每个地点的docID
保存到用户个人资料中,分布在不同的集合,需要检索每个集合以显示地点列表。
目标:
- 使用同一个地方的文档出现在州列表和用户的个人资料中。
- 在辅助用例中尽可能减少 calls/slowness 的数量。
我一直在查看 Firestore 数据存储指南,但如果有经验的开发人员对此数据结构提出任何想法,我将不胜感激。
有个。我们通常根据我们打算执行的查询来构建数据库。
关于将所有地点存储在一个集合中与每个州一个集合,请注意在速度或成本方面没有差异。您总是需要支付与您查询的文档数量相同的阅读次数 returns。但是,如果您需要在您的应用程序中显示,例如,所有州的所有地点,那么每个州都有一个集合,将需要为每个州单独查询。
此外,关于在用户个人资料中保存地点列表与仅存储 ID,这是一个衡量问题。您应该衡量这些地方的详细信息更改的频率。请记住,如果一个地方发生了变化,那么您应该在它存在的所有地方更新该数据。因此,如果它不经常更改,那么您可以保存整个 place 对象,否则,只保存 ID。
我希望获得有关如何构建应用程序中存储的数据的指导。虽然第一种方式有一些原因,但我担心它无法在第二种情况下有效运行。
简化后,该应用程序将包含按州划分的地点列表。主要用例是查看选定州内的地点。第二个用例是个人用户可以将他们喜欢的特定地点保存到他们的个人资料中并一次查看所有地点(在一个列表中显示所有州地点)。
选项 1- 地点保存在一个“地点”集合中,其中有一个字段“州”。
主要用途:为了按州显示这些地点,应用程序将查询“州”字段与州匹配的位置。
二次使用:当用户保存地点时,应用程序会将每个地点的docID
保存到用户的个人资料中,每个地点都需要检索以显示地点列表。
选项 2- 每个州有一个集合。
主要用途:为了按州显示这些地点,应用程序会提取查询中的所有文档并将它们列出来。
二次使用:当用户将地点保存到用户个人资料时,应用程序会将每个地点的docID
保存到用户个人资料中,分布在不同的集合,需要检索每个集合以显示地点列表。
目标:
- 使用同一个地方的文档出现在州列表和用户的个人资料中。
- 在辅助用例中尽可能减少 calls/slowness 的数量。
我一直在查看 Firestore 数据存储指南,但如果有经验的开发人员对此数据结构提出任何想法,我将不胜感激。
有
关于将所有地点存储在一个集合中与每个州一个集合,请注意在速度或成本方面没有差异。您总是需要支付与您查询的文档数量相同的阅读次数 returns。但是,如果您需要在您的应用程序中显示,例如,所有州的所有地点,那么每个州都有一个集合,将需要为每个州单独查询。
此外,关于在用户个人资料中保存地点列表与仅存储 ID,这是一个衡量问题。您应该衡量这些地方的详细信息更改的频率。请记住,如果一个地方发生了变化,那么您应该在它存在的所有地方更新该数据。因此,如果它不经常更改,那么您可以保存整个 place 对象,否则,只保存 ID。