選擇資料結構

請注意,在 Cloud Firestore 中建構資料時,您有幾種不同的選項:

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

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

文件中的巢狀資料

您可以在文件中巢狀複雜物件,例如陣列或對應。

  • 優點:如果想要將文件內容保存在簡單的固定資料清單,這樣能輕鬆設定和簡化資料結構。
  • 限制:這個值不如其他選項來擴充,特別是當資料會隨時間擴展時更是如此。清單越大或越多,文件也會越大,這可能會導致文件擷取時間變慢。
  • 可能的用途為何?舉例來說,在即時通訊應用程式中,您可以將使用者最近造訪的 3 個聊天室,儲存在他們的個人資料中,做為巢狀清單。
  • alovelace
    •     name :
            first : "Ada"
            last : "Lovelace"
          born : 1815
          rooms :
            0 : "Software Chat"
            1 : "Famous Figures"
            2 : "Famous SWEs"

子集合

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

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


    • 天文物理學
      • ...

根層級集合

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

  • 優點:根層級集合適合多對多關係,且可在每個集合中提供強大的查詢功能。
  • 限制:隨著資料庫的成長,取得自然階層式資料的難度可能會越來越高。
  • 可能的用途為何?舉例來說,在同一個即時通訊應用程式中,您可以為使用者和聊天室和訊息分別建立集合。
  • 使用者
    • alovelace
          first : "Ada"
          last : "Lovelace"
          born : 1815
    • sride
          first : "Sally"
          last : "Ride"
          born : 1951
  • 間會議室
    • 軟體
      • messages
        • message1
              from : "alovelace"
              content : "..."
        • message2
              from : "sride"
              content : "..."