請注意,在 Cloud Firestore 中建構資料時,您有幾種不同的選項:
請思考這些選項所能帶來的助益,因為這些選項與您的用途相關。本指南將列舉幾個階層式資料的結構範例。
文件中的巢狀資料
您可以在文件中巢狀複雜物件,例如陣列或對應。
- 優點:如果想要將文件內容保存在簡單的固定資料清單,這樣能輕鬆設定和簡化資料結構。
-
限制:這個值不如其他選項來擴充,特別是當資料會隨時間擴展時更是如此。清單越大或越多,文件也會越大,這可能會導致文件擷取時間變慢。
- 可能的用途為何?舉例來說,在即時通訊應用程式中,您可以將使用者最近造訪的 3 個聊天室,儲存在他們的個人資料中,做為巢狀清單。
|
- class alovelace
- name :
first : "Ada"
last : "Lovelace"
born : 1815
rooms :
0 : "Software Chat"
1 : "Famous Figures"
2 : "Famous SWEs"
|
子集合
如果您有可能隨著時間增加的資料,可以在文件中建立集合。
- 優點:隨著清單內容增加,父項文件的大小不會改變。您也可以在子集合上使用完整的查詢功能,並在各子集合中發出
集合群組查詢。
-
限制:您無法輕易刪除子集合。
- 可能的用途為何?舉例來說,在同一個即時通訊應用程式中,您可以在聊天室文件中建立使用者或訊息集合。
|
- collections_bookmark 科學
- class軟體
name : "軟體聊天"
- collections_bookmark
使用者
- class
alovelace
first : "Ada"
last : "Lovelace"
- class
乘車
first : "小莎"
last : "搭乘"`
- class 天文物理學
|
根層級集合
在資料庫的根層級建立集合,即可整理不同的資料集。
- 優點:根層級集合適合多對多關係,且可在每個集合中提供強大的查詢功能。
-
限制:隨著資料庫的成長,取得自然階層式資料的難度可能會越來越高。
- 可能的用途為何?舉例來說,在同一個即時通訊應用程式中,您可以為使用者和聊天室和訊息分別建立集合。
|
- collections_bookmark
使用者
- class alovelace
first : "Ada"
last : "Lovelace"
born : 1815
- class sride
first : "Sally"
last : "Ride"
born : 1951
- collections_bookmark 間會議室
- class 軟體
- collections_bookmark
messages
- class
message1
from : "alovelace"
content : "..."
- class
message2
from : "sride"
content : "..."
|