【发布时间】:2018-05-11 23:03:16
【问题描述】:
我是 Firebase 的新手,我正在努力了解“关系”数据的最佳数据库模型设计,包括 1-1 和 1-many。
我们使用的是 Firestore 数据库(不是实时数据库)。
假设我们有Projects 可以包含许多Users,而User 可以包含多个Projects
UI 需要在Project 中显示Users 的列表,其中显示了email、firstname、lastname 和department 等内容。
存储关系的最佳方式是什么?
-
Project文档中的Userid 数组? -
Project文档中的 ID 映射?
我已经阅读了推荐的上述方法,但是对于实时数据库? Firestore 支持 Sub Collections,听起来更合适...
- 项目文档中
Users的子集合? - 将
Projectid 映射到Userid 的单独集合? -
Reference数据类型?我在这里阅读过https://firebase.google.com/docs/firestore/manage-data/data-types 关于Reference数据类型的内容,这听起来像是我想要的,但我找不到更多关于它的内容!
如果它只是一个地图或 ID 数组,那么您将如何检索有关用户的剩余数据?这是否必须位于应用程序 UI 中?
如果它是用户文档的子集合,有什么方法可以保持数据完整性?如果用户更改了他们的姓名,那么 UI / cloudFunction 是否必须更新 Sub 集合中该用户姓名的每个条目?
任何帮助/指针表示赞赏...
【问题讨论】:
-
欢迎使用 NoSQL 数据库,您所知道的一切都被颠倒过来,有利于可扩展性。 :-) 我在下面回答了您的一些问题。
标签: firebase firebase-realtime-database google-cloud-firestore