Catch up on highlights from Firebase at Google I/O 2023. Learn more

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

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

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

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

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

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

  • ข้อดี: หากคุณมีรายการข้อมูลตายตัวง่ายๆ ที่คุณต้องการเก็บไว้ในเอกสารของคุณ การตั้งค่านี้จะทำได้ง่ายและทำให้โครงสร้างข้อมูลของคุณคล่องตัวขึ้น
  • ข้อจำกัด: ไม่สามารถปรับขนาดได้เหมือนกับตัวเลือกอื่นๆ โดยเฉพาะอย่างยิ่งหากข้อมูลของคุณขยายตัวเมื่อเวลาผ่านไป ด้วยรายการที่ใหญ่ขึ้นหรือเพิ่มขึ้น เอกสารก็เพิ่มขึ้นเช่นกัน ซึ่งอาจทำให้เวลาการเรียกเอกสารช้าลง
  • กรณีการใช้งานที่เป็นไปได้คืออะไร ตัวอย่างเช่น ในแอปแชท คุณอาจจัดเก็บห้องแชท 3 ห้องของผู้ใช้ที่เข้าชมล่าสุดเป็นรายการที่ซ้อนกันในโปรไฟล์ของผู้ใช้
  • รัก
    • ชื่อ :
      อันดับแรก : "เอด้า"
      ครั้งสุดท้าย : "ลูกไม้หล่นไม่ไกลต้น"
      เกิด : พ.ศ. 2358
      ห้องพัก :
      0 : "โปรแกรมแชท"
      1 : "บุคคลที่มีชื่อเสียง"
      2: "หน่วย SWE ที่มีชื่อเสียง"

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

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

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


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

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

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

  • ข้อดี: คอลเลกชันระดับรูทนั้นดีสำหรับความสัมพันธ์แบบกลุ่มต่อกลุ่มและให้การสืบค้นที่มีประสิทธิภาพภายในแต่ละคอลเลกชัน
  • ข้อจำกัด: การรับข้อมูลที่มีลำดับชั้นตามธรรมชาติอาจซับซ้อนมากขึ้นเมื่อฐานข้อมูลของคุณเติบโตขึ้น
  • กรณีการใช้งานที่เป็นไปได้คืออะไร ตัวอย่างเช่น ในแอปแชทเดียวกัน คุณอาจสร้างคอลเล็กชันหนึ่งสำหรับผู้ใช้และอีกคอลเลกชั่นหนึ่งสำหรับห้องและข้อความ
  • ผู้ใช้
    • รัก
      อันดับแรก : "เอด้า"
      ครั้งสุดท้าย : "ลูกไม้หล่นไม่ไกลต้น"
      เกิด : พ.ศ. 2358
    • เรียน
      อันดับแรก: "แซลลี่"
      ล่าสุด : "ขี่"
      เกิด : พ.ศ. 2494
  • ห้อง
    • ซอฟต์แวร์
      • ข้อความ
        • ข้อความ 1
          จาก: "alovelace"
          เนื้อหา : "..."
        • ข้อความ 2
          จาก : "sride"
          เนื้อหา : "..."