如何构建firestore数据库?

Posted

技术标签:

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

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

【问题讨论】:

【参考方案1】:

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

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

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

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

【讨论】:

以上是关于如何构建firestore数据库?的主要内容,如果未能解决你的问题,请参考以下文章

如何首次构建云数据仓库

如何构建 Firebase 实时数据库?

如何构建firestore数据库?

通常如何构建数据驱动的应用程序

如何构建数据库,多个外键?

如何将数据库查询构建器转换为 Eloquent 模型