我剛開始使用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個地方更新信息。我將如何解決這個問題?