如何使用谷歌的firestore模拟多对多的关系

时间:2018-03-26 19:38:21

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

我正在阅读有关Cloud firestore Data Model的文档 和约Security in Cloud firestore但无法找到如何建模数据的答案。

我有群组和用户,我希望实现会员关系,这样每个用户都可以成为多个群组的成员,每个群组显然可以拥有多个成员。

我希望能够有效地分辨出每个群组的成员以及给定用户所属的群组。

在关系数据库中,我会有3个表,用户,组和user_groups或group_membrs,我猜测读这个Q的人可以告诉你如何处理这个问题。

我应该使用哪些集合/文档/子集合来使用firestore实现相同的功能?

我特别关注允许用户从群组中删除自己(并且只有他自己)的安全设置,并允许群组所有者/管理者将任何用户添加到他管理的群组中(并且仅限于该群组) )

是否/应该仅使用集合用于用户和组来实现这一点,其中memebrship是这些集合中文档数据的一部分?或者是否应该使用额外的船舶集合?

1 个答案:

答案 0 :(得分:1)

我最初的做法是与我推荐modeling many-to-many relationship on the Firebase Realtime Database的方式完全相同。与您的关系体验最大的区别在于,您通常会将关系存储在两个方向。因此,除user_groups之外,您还有group_users,每个实体对共有四个集合。