【问题标题】:How to structure a firestore database?如何构建firestore数据库?
【发布时间】:2021-07-25 04:53:15
【问题描述】:

我正在创建一个带有 firestore 的颤振应用程序,但停留在数据结构场景中。所以场景是一个用户可以访问多个城市,我有 3000 个城市和 100000 个用户,我希望能够添加和查询哪些用户访问了特定城市。 我目前的实现是users/userId/userDetailscities/cityName/cityDetails

【问题讨论】:

    标签: firebase flutter web google-cloud-firestore nosql


    【解决方案1】:

    鉴于我从 Firebase 提供的 video guides 学到的东西很少;这取决于您是否只想列出访问过一个城市的用户(即只是一些关于他们的基本信息);或者,如果您想要按用户访问过的城市列出用户。

    对于第一种情况,您只想列出每个城市的访客,最好创建一个文档,其中包含按 id 列出的访客列表。这样一来,当您查询城市时,您不必每次调用时都检索大量的访问者列表。

    或者,对于第二种情况,您可能希望执行相反的操作,每个用户都有一个(子)文档,其中包含他们访问过的城市列表。如果预计城市列表特别大,或者如果 userDetails 文件包含有关用户的大量信息(大量字段),这将特别有用。
    如果 userDetails 文件不包含很多详细信息,更具体地说,如果字段数量相当少并且您不希望用户访问超过 150 个城市,则可以将其作为常规之一包含userDetails 中的字段,通过将其设置为数组(如果您不关心顺序)或将其设置为 Map(如果您计划将每个城市作为键,值对是访问城市的时间) )

    话虽如此,我的建议是假设您所说的实施说明最终条目是文档(cityDetails 和 userDetails),因为我认为这是最有意义的(具有userId 和 cityName 作为集合)。
    如果我误解了你的结构,它实际上是“城市”作为文档,“cityName”作为集合,“cityDetails”作为文档;请告诉我,以便我修正我的答案。

    【讨论】:

      猜你喜欢
      • 2018-03-20
      • 2018-04-15
      • 2019-05-29
      • 2019-11-01
      • 1970-01-01
      • 2020-12-16
      • 2019-02-25
      • 2021-07-16
      • 1970-01-01
      相关资源
      最近更新 更多