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

Xin lưu ý rằng khi 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
  • Tập hợp con trong tài liệu

Hãy cân nhắc những lợi thế 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 số cấu trúc ví dụ 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 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à đơn giản hoá cấu trúc dữ liệu.
  • Hạn chế: Cách này không thể mở rộng quy mô như các lựa chọn khác, đặc biệt nếu dữ liệu của bạn tăng lên theo thời gian. Khi danh sách lớn hơn hoặc ngày càng lớn, tài liệu cũng sẽ lớn hơn, điều này có thể dẫn đến thời gian truy xuất tài liệu chậm hơn.
  • Trường hợp sử dụng nào có thể xảy ra? Ví dụ: trong một ứng dụng nhắn tin, 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 một 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ó thể sử dụng đầy đủ các chức năng truy vấn trên các 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 nào có thể xảy ra? Ví dụ: trong cùng một ứng dụng trò chuyện, bạn có thể tạo các 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"
      • người dùng
        • alovelace
              first : "Ada"
              last : "Lovelace"
        • sride
              first : "Sally"
              last : "Ride"`


    • vật lý thiên văn
      • ...

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

Tạo các tập hợ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: Các 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 có tính phân cấp tự nhiên 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 nào có thể xảy ra? 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.
  • người dùng
    • alovelace
          first : "Ada"
          last : "Lovelace"
          born : 1815
    • sride
          first : "Sally"
          last : "Ride"
          born : 1951
  • phòng
    • phần mềm
      • messages
        • message1
              from : "alovelace"
              content : "..."
        • message2
              from : "sride"
              content : "..."