โปรดทราบว่าเมื่อคุณจัดโครงสร้างข้อมูลใน Cloud Firestore คุณจะ
มีตัวเลือกที่แตกต่างกัน 2-3 ตัวเลือกดังนี้
- เอกสาร
- คอลเล็กชันหลายรายการ
- คอลเล็กชันย่อยภายในเอกสาร
พิจารณาข้อดีของแต่ละตัวเลือก
ที่เกี่ยวข้องกับกรณีการใช้งานของคุณ ตัวอย่างโครงสร้างสำหรับข้อมูลลำดับชั้น
ตามที่ระบุไว้ในคู่มือนี้
ข้อมูลที่ฝังในเอกสาร
คุณสามารถฝังวัตถุที่ซับซ้อน เช่น อาร์เรย์หรือแผนที่ภายในเอกสารได้
- ข้อดี: หากคุณมีรายการข้อมูลที่เรียบง่ายและคงที่ซึ่ง
ที่ต้องการเก็บไว้ในเอกสาร ตั้งค่าได้ง่ายและมีประสิทธิภาพ
โครงสร้างข้อมูลของคุณ
-
ข้อจำกัด
การวัดนี้ไม่สามารถปรับขนาดได้เท่ากับตัวเลือกอื่นๆ
โดยเฉพาะเมื่อข้อมูลของคุณขยายออกไปเรื่อยๆ เมื่อมีรายการมากขึ้นหรือเพิ่มขึ้น
เอกสารก็ขยายใหญ่ขึ้นซึ่งอาจทำให้ดึงข้อมูลเอกสารช้าลง
- กรณีการใช้งานที่เป็นไปได้มีอะไรบ้าง เช่น ในแอปแชท
อาจจัดเก็บห้องแชท 3 ห้องที่ผู้ใช้เข้าชมล่าสุดเป็นรายการซ้อนกัน
โปรไฟล์ของพวกเขา
|
- class แอโลเวเลซ
- ชื่อ :
ชื่อแรก : "อดา"
สุดท้าย : "Lovelace"
เกิด : 1815
ห้อง :
0 : "แชทผ่านซอฟต์แวร์"
1 : "บุคคลที่มีชื่อเสียง"
2 : "SWE ชื่อดัง"
|
คอลเล็กชันย่อย
คุณสามารถสร้างคอลเล็กชันภายในเอกสารเมื่อมีข้อมูลที่อาจขยายได้
เมื่อเวลาผ่านไป
- ข้อดี: เมื่อรายการใหญ่ขึ้น ขนาดของรายการหลัก
เอกสารไม่เปลี่ยนแปลง คุณยังจะได้รับความสามารถในการค้นหาอย่างสมบูรณ์ในคอลเล็กชันย่อย
และคุณสามารถออก
การค้นหากลุ่มคอลเล็กชันในคอลเล็กชันย่อยทั้งหมด
-
ข้อจำกัด: คุณลบคอลเล็กชันย่อยได้ยาก
- กรณีการใช้งานที่เป็นไปได้มีอะไรบ้าง ในแอปแชทเดียวกัน
เช่น คุณอาจสร้างคอลเล็กชันของผู้ใช้หรือข้อความภายในห้องแชท
เอกสาร
|
- วิทยาศาสตร์ collections_bookmark
- ซอฟต์แวร์ class
ชื่อ : "แชทด้วยซอฟต์แวร์"
- collections_bookmark
ผู้ใช้
- class
พืชอโลเวเลซ
ชื่อแรก : "อดา"
สุดท้าย : "Lovelace"
- class
ไพรด์
อันแรก : "ส้ม"
สุดท้าย : "โดยสาร"`
- ฟิสิกส์ดาราศาสตร์ class
|
คอลเล็กชันระดับราก
สร้างคอลเล็กชันที่ระดับรากของฐานข้อมูลเพื่อจัดระเบียบข้อมูลที่แตกต่างกัน
เซ็ต
- ข้อดี: คอลเล็กชันระดับรูทเหมาะสำหรับหลายต่อหลาย
ความสัมพันธ์กัน และช่วยให้การค้นหาที่มีประสิทธิภาพภายในแต่ละคอลเล็กชัน
-
ข้อจำกัด: การรับข้อมูลตามลำดับชั้นตามปกติ
มีความซับซ้อนมากขึ้นเรื่อยๆ เมื่อฐานข้อมูลของคุณเติบโต
- กรณีการใช้งานที่เป็นไปได้มีอะไรบ้าง ในแอปแชทเดียวกัน
ตัวอย่างเช่น คุณอาจสร้างคอลเล็กชันหนึ่งสำหรับผู้ใช้ และอีกคอลเล็กชันหนึ่งสำหรับห้อง และ
ข้อความ
|
- collections_bookmark
ผู้ใช้
- class แอโลเวเลซ
ชื่อแรก : "อดา"
สุดท้าย : "Lovelace"
เกิด : 1815
- class คะแนน
อันแรก : "ส้ม"
สุดท้าย : "โดยสาร"
เกิด : 1951
- collections_bookmark ห้องแชท
- ซอฟต์แวร์ class
- collections_bookmark
ข้อความ
- class
ข้อความ 1
จาก : "alovelace"
เนื้อหา : "..."
- class
ข้อความ 2
จาก : "sride"
เนื้อหา : "..."
|