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