Chọn một cấu trúc dữ liệu

Hãy nhớ rằng khi bạn cấu trúc dữ liệu trong Cloud Firestore, bạn có một số lựa chọn:

  • Tài liệu
  • Nhiều bộ sưu tập
  • Bộ sưu tập con trong tài liệu

Hãy cân nhắc những ưu điểm của từng lựa chọn khi chúng liên quan đến trường hợp sử dụng của bạn. Hướng dẫn này trình bày một vài ví dụ về cấu trúc cho dữ liệu phân cấp.

Dữ liệu lồng nhau trong tài liệu

Bạn có thể lồng các đối tượng phức tạp như mảng hoặc bản đồ trong tài liệu.

  • Ưu điểm: Nếu bạn có các danh sách dữ liệu đơn giản, cố định mà bạn muốn giữ trong tài liệu, thì bạn có thể dễ dàng thiết lập và sắp xếp cấu trúc dữ liệu.
  • Hạn chế: Cấu trúc này không thể mở rộng như các lựa chọn khác, đặc biệt là nếu dữ liệu của bạn mở rộng theo thời gian. Với các danh sách lớn hơn hoặc đang phát triển, tài liệu cũng sẽ lớn hơn, điều này có thể làm chậm thời gian truy xuất tài liệu.
  • Trường hợp sử dụng có thể là gì? Ví dụ: trong một ứng dụng trò chuyện, bạn có thể lưu trữ 3 phòng trò chuyện mà người dùng truy cập gần đây nhất dưới dạng danh sách lồng nhau trong hồ sơ của họ.
  • alovelace
    •     name :
            first : "Ada"
            last : "Lovelace"
          born : 1815
          rooms :
            0 : "Software Chat"
            1 : "Famous Figures"
            2 : "Famous SWEs"

Bộ sưu tập con

Bạn có thể tạo bộ sưu tập trong tài liệu khi có dữ liệu có thể mở rộng theo thời gian.

  • Ưu điểm: Khi danh sách của bạn tăng lên, kích thước của tài liệu mẹ sẽ không thay đổi. Bạn cũng có toàn bộ khả năng truy vấn trên bộ sưu tập con, và có thể đưa ra truy vấn nhóm bộ sưu tập trên các bộ sưu tập con.
  • Hạn chế: Bạn không thể dễ dàng xoá bộ sưu tập con.
  • Trường hợp sử dụng có thể là gì? Ví dụ: trong cùng một ứng dụng trò chuyện, bạn có thể tạo bộ sưu tập người dùng hoặc tin nhắn trong tài liệu phòng trò chuyện.
  • science
    • software
        name : "software chat"
      • users
        • alovelace
              first : "Ada"
              last : "Lovelace"
        • sride
              first : "Sally"
              last : "Ride"`


    • astrophysics
      • ...

Bộ sưu tập cấp gốc

Tạo bộ sưu tập ở cấp gốc của cơ sở dữ liệu để sắp xếp các tập dữ liệu riêng biệt.

  • Ưu điểm: Bộ sưu tập cấp gốc phù hợp với mối quan hệ nhiều-nhiều và cung cấp khả năng truy vấn mạnh mẽ trong mỗi bộ sưu tập.
  • Hạn chế: Việc lấy dữ liệu vốn có tính phân cấp có thể ngày càng phức tạp khi cơ sở dữ liệu của bạn phát triển.
  • Trường hợp sử dụng có thể là gì? Ví dụ: trong cùng một ứng dụng trò chuyện, bạn có thể tạo một bộ sưu tập cho người dùng và một bộ sưu tập khác cho phòng và tin nhắn.
  • users
    • alovelace
          first : "Ada"
          last : "Lovelace"
          born : 1815
    • sride
          first : "Sally"
          last : "Ride"
          born : 1951
  • rooms
    • software
      • messages
        • message1
              from : "alovelace"
              content : "..."
        • message2
              from : "sride"
              content : "..."