在Firebase中,如果没有联接表的概念,如何存储关于多对多关系的信息?

在Firebase中,如果没有联接表的概念,如何存储关于多对多关系的信息?,firebase,Firebase,我的Firebase应用程序包含组和用户之间的多对多关系。我想存储有关用户何时加入组的信息—如果没有联接表的概念,我该如何进行 我使用这个Firebase示例作为参考: 你建议这样做吗 app: { groups: { group1: { members: { user1: { joinDate: '2016-01-22T02:43:27.817Z', isCreator: true },

我的Firebase应用程序包含组和用户之间的多对多关系。我想存储有关用户何时加入组的信息—如果没有联接表的概念,我该如何进行

我使用这个Firebase示例作为参考:

你建议这样做吗

app: {
  groups: {
    group1: {
      members: {
        user1: {
          joinDate: '2016-01-22T02:43:27.817Z',
          isCreator: true
        },
        user2: {
          joinDate: '2016-01-23T02:43:27.817Z',
          isCreator: false
        }
      }
    }
  },
  users: {
    user1: {
      firstName: 'Adam',
      lastName: 'Soffer',
      groups: {
        group1: {
          joinDate: '2016-01-22T02:43:27.817Z',
          isCreator: true
        }
      }
    },
    user2: {
      firstName: 'Joe',
      lastName: 'Shmoe',
      groups: {
        group1: {
          joinDate: '2016-01-23T02:43:27.817Z',
          isCreator: false
        }
      }
    }
  }
}
官方指南是一个很好的资源,可以帮助进行这样的概念设计

一般来说,最好尽量少用嵌套数据,并尽可能将数据展平

可以用更平坦的结构表示相同的特征

membership: {
  user1: {
    group1: { joined: '2016-01-23T02:43:27.817Z' },
    group2: { joined: '2016-01-23T02:43:27.817Z' }
  }
},

groups: {
  group1: {
    creator: user1
  },
  group2: {
    creator: user1
  }
},

users: {
  user1: {
    firstName: 'Adam',
    lastName: 'Soffer'
  }
}
我们使用了一个成员对象来管理用户和组的多对多关系,允许我们删除组和用户字段中的大量嵌套

假设每个组只有一个创建者,也可以将其移动到组对象中,从而保证只有一个创建者,并从我们的用户对象中删除一些非规范化数据。

官方指南是一个很好的资源,可以帮助进行这样的概念设计

一般来说,最好尽量少用嵌套数据,并尽可能将数据展平

可以用更平坦的结构表示相同的特征

membership: {
  user1: {
    group1: { joined: '2016-01-23T02:43:27.817Z' },
    group2: { joined: '2016-01-23T02:43:27.817Z' }
  }
},

groups: {
  group1: {
    creator: user1
  },
  group2: {
    creator: user1
  }
},

users: {
  user1: {
    firstName: 'Adam',
    lastName: 'Soffer'
  }
}
我们使用了一个成员对象来管理用户和组的多对多关系,允许我们删除组和用户字段中的大量嵌套


假设每个组只有一个创建者,也可以将其移动到组对象中,向我们保证只能有一个创建者,并从我们的用户对象中删除一些非规范化数据。

这种结构是否使查询属于特定组的所有用户变得困难?这种结构是否使查询属于特定组的所有用户变得困难?