เลือกโครงสร้างข้อมูล

โปรดทราบว่าเมื่อจัดโครงสร้างข้อมูลใน Cloud Firestore คุณจะมีตัวเลือกต่างๆ ดังนี้

  • เอกสาร
  • คอลเล็กชันหลายรายการ
  • คอลเล็กชันย่อยภายในเอกสาร

พิจารณาข้อดีของแต่ละตัวเลือกที่เกี่ยวข้องกับกรณีการใช้งานของคุณ ตัวอย่างโครงสร้างบางส่วนสำหรับข้อมูลลําดับชั้นมีระบุไว้ในคู่มือนี้

ข้อมูลที่ซ้อนกันในเอกสาร

คุณสามารถฝังออบเจ็กต์ที่ซับซ้อน เช่น อาร์เรย์หรือแผนที่ ภายในเอกสารได้

  • ข้อดี: หากมีรายการข้อมูลที่แก้ไขไม่ได้และเรียบง่ายซึ่งคุณต้องการเก็บไว้ในเอกสาร ตัวเลือกนี้จะตั้งค่าได้ง่ายและช่วยให้โครงสร้างข้อมูลมีประสิทธิภาพมากขึ้น
  • ข้อจํากัด: ตัวเลือกนี้ปรับขนาดได้ไม่ดีเท่าตัวเลือกอื่นๆ โดยเฉพาะหากข้อมูลมีปริมาณมากขึ้นเมื่อเวลาผ่านไป เมื่อรายการมีขนาดใหญ่ขึ้นหรือมีจำนวนรายการเพิ่มขึ้น เอกสารก็จะมีขนาดเพิ่มขึ้นด้วย ซึ่งอาจทำให้การเรียกข้อมูลเอกสารช้าลง
  • กรณีการใช้งานที่เป็นไปได้มีอะไรบ้าง ตัวอย่างเช่น ในแอปแชท คุณอาจจัดเก็บห้องแชทที่ผู้ใช้เข้าชมล่าสุด 3 ห้องเป็นรายการที่ฝังอยู่ในโปรไฟล์ของผู้ใช้
  • alovelace
    •     name :
            first : "Ada"
            last : "Lovelace"
          born : 1815
          rooms :
            0 : "Software Chat"
            1 : "Famous Figures"
            2 : "Famous SWEs"

คอลเล็กชันย่อย

คุณสามารถสร้างคอลเล็กชันภายในเอกสารได้เมื่อมีข้อมูลที่อาจขยายตัวเมื่อเวลาผ่านไป

  • ข้อดี: เมื่อรายการมีขนาดใหญ่ขึ้น ขนาดของเอกสารหลักจะไม่เปลี่ยนแปลง นอกจากนี้ คุณยังใช้การค้นหาได้เต็มรูปแบบในคอลเล็กชันย่อย และสามารถออก การค้นหากลุ่มคอลเล็กชันในคอลเล็กชันย่อยต่างๆ ได้
  • ข้อจำกัด: คุณลบคอลเล็กชันย่อยได้ยาก
  • กรณีการใช้งานที่เป็นไปได้มีอะไรบ้าง เช่น คุณอาจสร้างคอลเล็กชันผู้ใช้หรือข้อความภายในเอกสารของห้องแชทในแอปแชทเดียวกัน
  • science
    • 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
  • rooms
    • software
      • messages
        • message1
              from : "alovelace"
              content : "..."
        • message2
              from : "sride"
              content : "..."