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

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

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

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

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

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

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

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

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

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


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

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

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

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