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

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

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

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

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

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

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

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

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

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


    • วิชา ดาราศาสตร์
      • ...

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

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

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