選擇資料結構

提醒您,在 Cloud Firestore 中建構資料時,您可以採取幾個不同的選項:

  • 文件
  • 多個集合
  • 文件中的子集合

請思考這些選項所能帶來的助益,因為這些選項與您的用途相關。本指南將概略說明幾個階層式資料結構範例。

文件中的巢狀資料

您可以在文件中將複雜的物件 (例如陣列或地圖) 建立巢狀結構。

  • 優點:如果想要將文件內容保存在簡單的固定資料清單,這樣能輕鬆設定和簡化資料結構。
  • 限制:這個值不如其他選項來擴充,特別是當資料會隨時間擴展時更是如此。隨著清單較大或不斷增加,文件也會不斷擴增,導致文件擷取速度變慢。
  • 可能的用途為何?舉例來說,在即時通訊應用程式中,您可以將使用者最近造訪的 3 個聊天室,以巢狀清單的形式儲存在其個人資料中。
  • 阿洛伐克
    • name :
      first : "Ada"
      last: "Lovelace"
      出生於 1815 年
      室 :
      0 : "我們
      "好

子集合

如果資料可能會隨時間增加,您可以在文件中建立集合。

  • 優點:隨著清單擴增,父文件的大小並不會改變。您也可以取得子集合的完整查詢功能,也能跨子集合發出 集合群組查詢
  • 限制:您無法輕鬆刪除子集合。
  • 可能的用途為何?舉例來說,在同一個即時通訊應用程式中,您可以在聊天室文件中建立使用者集合或訊息。
  • 科學
    • 軟體
      name : "軟體聊天"
      • 使用者
        • 洛伐克
          first : "Ada"
          last : "Lovelace"
        • 乘車
          first : "小莎"
          last : "搭乘"`


    • 天文物理學
      • ...

根層級集合

在資料庫的根層級建立集合,即可整理不同的資料集。

  • 優點:根層級集合適合多對多關係,且可在每個集合中提供強大的查詢功能。
  • 限制:隨著資料庫擴增,自然階層化的資料會變得更加複雜。
  • 可能的用途為何?舉例來說,在同一個即時通訊應用程式中,您可以為使用者和聊天室和訊息分別建立集合。
  • 使用者
    • 洛伐克
      首先 : "Ada"
      last: "Lovelace"
      出生於:1815 年
    • 行程
      第一次 :「小莎」
      上次 :「搭乘」
      出生於:1951 年
  • 間會議室
    • 軟體
      • 訊息
        • message1
          from:「阿洛伐克」
          內容:「...」
        • message2
          from : "sride"
          內容 : "..."