【问题标题】:Modelling data for a Google Firestore project为 Google Firestore 项目建模数据
【发布时间】:2018-04-14 21:38:25
【问题描述】:

我们正在创建一个新应用,其中包含以下类型的数据,我正在寻求有关在 Firestore 中组织数据的最佳方式的帮助。

我们有以下内容:

  • 用户

    • 用户 ID
    • 用户名
    • ...
  • 产品

    • 产品ID
    • 产品名称
    • 用户 ID
    • 一堆其他产品领域

到这里为止,这很简单,因为我们可以为用户创建一个集合,为产品创建一个集合。

现在,接下来是这样的:

  1. 每个产品都可以有评论(许多用户评论)
  2. 每条评论本身可以有多个用户 cmets
  3. 每个产品都可以由用户拥有自己的 cmets。

因此,典型的产品将如下所示:

产品(由用户发布) - 用户评论 - 对用户评论的评论 - 用户对产品的评论

我正在寻找在 Firestore 中组织这些数据的最佳方式。

我可以想到两种可能的方法:

可能性1

有 4 个收藏:

  • 用户
  • 产品
  • 评论
    • 评论 (评论中的 cmets 将是评论的子集合)
  • 评论

这些集合中的文档将由产品 ID 引用。

可能性2

有两个主要集合,然后将评论和 cmets 作为产品集合的子集合:

  • 用户
  • 产品
    • 评论
      • 评论
    • 评论

这两种可能性中的哪一种是在 Firestore 中组织内容的最佳方式?

【问题讨论】:

    标签: document google-cloud-firestore


    【解决方案1】:

    firestore 文档为这两种方法提供了一个很好的优缺点列表: https://firebase.google.com/docs/firestore/manage-data/structure-data

    TL;DR 具有根级集合在大多数情况下是可取的,除非数据真的是分层的,所以我会选择 1),因为它只是为您提供最大的灵活性。

    例如,您仍然具有过滤所有 cmets 的能力,因此如果您想按用户显示所有 cmets,您可以轻松做到这一点,而 2) 这样的任务更难完成。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-22
      • 2020-12-16
      • 2020-05-23
      • 2019-07-31
      • 2020-05-13
      • 1970-01-01
      • 2020-10-19
      • 2020-06-18
      相关资源
      最近更新 更多