請注意,在 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 software
name : "software chat"
- collections_bookmark
使用者
- class
alovelace
first : "Ada"
last : "Lovelace"
- class
sride
first : "Sally"
last : "Ride"`
- 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 : "..."
|