【问题标题】:Firestore - Logical collection schema for setting data per user?Firestore - 用于为每个用户设置数据的逻辑收集模式?
【发布时间】:2018-08-08 19:42:31
【问题描述】:

我正在尝试为我正在构建的 Angular 应用程序实现一个结构,每个用户都有自己用于登录的数据集,因此每个用户都应该有自己的“费用”、“联系人”、“发票”收藏。

据我了解,因此应该存在具有用户 uid 值的 id 的文档,这些文档可以通过对在其中搜索用户数据的主集合的查询来访问。因此,在 firestore 控制台的顶级“联系人”集合中,应该有用每个用户的 uid 标记的文档,然后包含他们自己的可用联系人数组。

下面的演示:

这看起来是按用户实现数据的正确方法吗?

【问题讨论】:

  • 你找到了一个好的答案吗?我对如何处理这种情况也有同样的疑问

标签: angular firebase google-cloud-firestore


【解决方案1】:

数据建模没有单一的“正确”方法。这一切都取决于我们应用程序的用例。

一种选择是拥有一个顶级 users 集合,每个用户都有一个文档,然后每个用户都有 contactsexpensesinvoices 集合。

但这只是一种方式,如前所述,这完全取决于您的用例。例如,对于上面的模型,您无法查询所有用户的发票。如果您想在两个用户之间共享发票,则需要将其添加到每个用户的/users/$uid/invoices 集合中。如果这不符合您应用的用例,那么您可以考虑将发票存储在顶级 /invoices 集合中,并添加每个用户对它们的引用。

存在太多变体,无法找到一种万能的解决方案,这就是为什么如果没有随附的标准应用程序,您将找不到标准数据模型。两者总是齐头并进。

要了解更多信息,我建议阅读这篇关于 NoSQL data modeling 的文章。

【讨论】:

  • 您能否在答案中添加更多信息?特别是关于如何处理截图中提出的案例,我不太清楚
猜你喜欢
  • 2021-10-18
  • 2016-12-19
  • 2014-05-19
  • 1970-01-01
  • 2017-11-05
  • 2020-01-18
  • 1970-01-01
  • 2021-12-29
  • 1970-01-01
相关资源
最近更新 更多