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

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

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

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

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

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

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


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

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

  • ข้อดี: เมื่อรายการใหญ่ขึ้น ขนาดของเอกสารหลักจะไม่เปลี่ยนแปลง นอกจากนี้ คุณยังใช้การค้นหาได้เต็มรูปแบบในคอลเล็กชันย่อย และสามารถออก การค้นหากลุ่มคอลเล็กชันในคอลเล็กชันย่อยต่างๆ ได้
  • ข้อจำกัด: คุณลบคอลเล็กชันย่อยได้ยาก
  • กรณีการใช้งานที่เป็นไปได้มีอะไรบ้าง เช่น คุณอาจสร้างคอลเล็กชันผู้ใช้หรือข้อความภายในเอกสารของห้องแชทในแอปแชทเดียวกัน
  • science
    • software
        name : "software chat"
      • ผู้ใช้
        • alovelace
              first : "Ada"
              last : "Lovelace"
        • sride
              first : "Sally"
              last : "Ride"`


    • ดาราศาสตร์
      • ...

คอลเล็กชันระดับรูท

สร้างคอลเล็กชันที่ระดับรูทของฐานข้อมูลเพื่อจัดระเบียบชุดข้อมูลที่กระจัดกระจาย

  • ข้อดี: คอลเล็กชันระดับรูทเหมาะสำหรับความสัมพันธ์แบบหลายต่อหลายรายการ และให้การค้นหาที่มีประสิทธิภาพภายในแต่ละคอลเล็กชัน
  • ข้อจำกัด: การรับข้อมูลที่เรียงตามลำดับชั้นตามธรรมชาติอาจมีความซับซ้อนมากขึ้นเรื่อยๆ เมื่อฐานข้อมูลของคุณเติบโตขึ้น
  • กรณีการใช้งานที่เป็นไปได้มีอะไรบ้าง เช่น คุณอาจสร้างคอลเล็กชันหนึ่งสำหรับผู้ใช้และอีกคอลเล็กชันหนึ่งสำหรับห้องแชทและข้อความไว้ในแอปแชทเดียวกัน
  • ผู้ใช้
    • alovelace
      first : "Ada"
      last : "Lovelace"
      เกิด : 1815
    • sride
          first : "Sally"
          last : "Ride"
          born : 1951
  • rooms
    • software
      • messages
        • message1
              from : "alovelace"
              content : "..."
        • message2
              from : "sride"
              content : "..."