選擇資料結構

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

  • 文件
  • 多個珍藏內容
  • 文件中的子集合

請考量每個選項與您的用途相關的優點。本指南將列舉幾個階層式資料的結構範例。

文件中的巢狀資料

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

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

子集合

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

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


    • 天文物理學
      • ...

根層級集合

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

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