Firebase Firestore-关系数据设计方法

Mat*_*son 5 firebase firebase-realtime-database google-cloud-firestore

我是Firebase的新手,我正在努力使有关1-1和1-many的“关系”数据的最佳数据库模型设计成为现实。

我们正在使用Firestore数据库(而不是实时数据库)。

假设我们有Projects可以包含多个Users,并且User可以多个Projects

用户界面需要显示的列表UsersProject,显示的东西喜欢emailfirstnamelastnamedepartment

存储关系的最佳方法是什么?

  • 文档中的UserID 数组Project
  • Project文档中的ID映射?

我已经阅读了推荐的上述方法,但这是否适用于实时数据库Firestore支持Sub Collection,听起来更合适……

如果它只是ID的映射或数组,那么您将如何检索有关用户的剩余数据?这是否必须坐在应用程序UI中?

如果它是用户文档的子集合,是否有任何方法可以维护数据完整性?如果用户更改了名称,那么UI / cloudFunction是否必须更新Su​​b集合中该用户名称的每个条目?

任何帮助/指针赞赏...

Fra*_*len 2

在 Firestore 中建模多对多关系的方法与在 Firebase 实时数据库中建模的方法几乎相同,我已在此回答:Firebase 中的多对多关系。唯一的区别确实是您可以将查找列表存储在每个项目/用户的子集合中。

查找链接项也和以前一样,它确实需要从客户端单独加载它们。这样的客户端连接并不像您最初预期的那么慢,因此在假设它可能不够快之前先对其进行测试。

确保数据完整性可以通过执行批量写入或使用事务来完成。这些要么完全成功,要么完全失败。

  • 与纯字符串“uid”相比,使用 Firestore 数据类型“Reference”有什么好处? (11认同)