選擇資料結構

請注意,在 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"
        • sride
              first : "Sally"
              last : "Ride"`


    • 天體物理學
      • ...

根層級集合

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

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