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

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

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

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

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

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

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

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

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

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