【问题标题】:How to model foreign key like relationship in firestore如何在firestore中为外键建模关系
【发布时间】:2021-09-13 15:23:48
【问题描述】:

假设我有这个数据模型:

我有一个学生的姓名和年龄,一个学生可以在班级中,也可以在运动队中。

在关系数据库中,我会将学生存储到student 列中。在classsport 表中,我会通过外键引用每个学生。

这样做的好处是,当学生庆祝他们的生日时,我只需要在一个地方更改age,即student 表。

对于我理解为 nosql 的 firestore,我正在阅读的内容指向一个模型,其中我有一个 class 文档,所有 student 都将嵌入其中。 team 文档也是如此。

这种建模的唯一问题是,如果我想更新学生的年龄,我必须在所有地方更新,学生结构嵌入其中。

有没有更好的方法来实现我在关系数据库中可以拥有的东西?我在哪里定义了数据并且可以在其他地方引用,因此只需在一个地方更改数据就可以了?

【问题讨论】:

    标签: google-cloud-firestore nosql data-modeling


    【解决方案1】:

    很遗憾,没有。 nosql 数据库的设计使您需要将数据存储在多个位置,并在需要时使用 sync

    我可以建议将尽可能少的数据存储到其他地方。并尝试存储更多静态数据,例如姓名或出生日期,这些数据不会经常更改(但无论如何仍会为它们创建同步)。

    如果您不喜欢只保存学生的id,您可以将reference 保存给他,但最终它只是path 给他。你可以阅读更多关于它的信息here

    【讨论】:

      猜你喜欢
      • 2011-12-18
      • 1970-01-01
      • 1970-01-01
      • 2021-03-01
      • 1970-01-01
      • 2014-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多