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

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

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

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

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

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

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


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

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

  • ข้อดี: เมื่อรายการใหญ่ขึ้น ขนาดของเอกสารหลักจะไม่เปลี่ยนแปลง คุณยังใช้ความสามารถในการค้นหาอย่างเต็มที่ในคอลเล็กชันย่อยและออก การค้นหากลุ่มคอลเล็กชันในคอลเล็กชันย่อยได้
  • ข้อจำกัด: คุณลบคอลเล็กชันย่อยได้ยาก
  • กรณีการใช้งานที่เป็นไปได้มีอะไรบ้าง เช่น ในแอปแชทเดียวกัน คุณอาจสร้างคอลเล็กชันผู้ใช้หรือข้อความภายในเอกสารของห้องแชท
  • วิทยาศาสตร์
    • ซอฟต์แวร์
      ชื่อ : "ซอฟต์แวร์แชท"
      • ผู้ใช้ ราย
        • alovelace
          first : "Ada"
          last : "Lovelace"
        • sride
          ก่อน : "ส้ม"
          สุดท้าย : "โดยสาร""


    • ฟิสิกส์ดาราศาสตร์
      • ...

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

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

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