我刚开始使用Firebase数据库,我对如何构建数据库感到困惑。在下面的例子中,我有一个用户对象和一个组对象。每个用户可以是多个组的一部分,每个组可以有多个用户。根据“Structure Your Database”,建议的数据库结构如下。列出Firebase数据和关系
{
"users": {
"alovelace": {
"name": "Ada Lovelace",
"groups": {
"techpioneers": true,
"womentechmakers": true
}
}
},
"groups": {
"techpioneers": {
"name": "Historical Tech Pioneers",
"startDate": "24-04-1820",
"members": {
"alovelace": true,
"ghopper": true,
"eclarke": true
}
}
}
}
比方说,我要在列表中显示所有组在我的应用程序,与组名和起始日期。我将如何进行数据库调用?由于用户对象只包含组的id,那么我是否需要为每个组分别调用一次数据库才能找出组的名称和开始日期?如果列表中有很多组,那么这会变成很多电话。我的团队也可能包含很多其他信息,因此这对于性能来说似乎不太合适。我可以在一次通话中获得用户的群组列表中的所有群组吗?
一个虽然我有是包括名称和起始日期的组,用户可以根据对象:
"users": {
"alovelace": {
"name": "Ada Lovelace",
"groups": {
"techpioneers":{
"name": "Historical Tech Pioneers",
"startDate": "24-04-1820"
},
"womentechmakers":{
"name": "Women in Technology",
"startDate": "13-10-1823"
}
}
}
}
}
但这种解决方案似乎增添了不少的重复数据。此外,如果我想更新名称,我将不得不在多个位置执行此操作。也许我想添加一个赞助组织对象,也包含组,然后想列出它们。然后会有3个地方更新信息。我将如何解决这个问题?