בחירת מבנה נתונים

חשוב לזכור: כשאתם מבינים את המבנה של הנתונים ב-Cloud Firestore, יש לכם כמה אפשרויות שונות:

  • מסמכים
  • כמה אוספים
  • אוספי משנה בתוך מסמכים

כדאי לשקול את היתרונות של כל אפשרות בהתאם לתרחיש לדוגמה שלכם. במדריך הזה מפורטים כמה מבנים לדוגמה של נתונים היררכיים.

נתונים בתוך מסמכים

אפשר להטמיע מסמכים בתוך אובייקטים מורכבים כמו מערכים או מפות.

  • יתרונות: אם יש לכם רשימות פשוטות וקבועות של נתונים שאתם רוצים לשמור במסמכים, האפשרות הזו קלה להגדרה ומפשטת את מבנה הנתונים.
  • מגבלות: ההתאמה הזו לא ניתנת להתאמה כמו אפשרויות אחרות, במיוחד אם הנתונים מתרחבים עם הזמן. ככל שרשימות גדולות יותר או הולכות וגדלות, המסמך גם גדל, וזה עלול להאט את זמני אחזור המסמכים.
  • מהו תרחיש לדוגמה? לדוגמה, באפליקציית צ'אט אפשר לאחסן את 3 חדרי הצ'אט שבהם המשתמש ביקר לאחרונה כרשימה בתצוגת עץ בפרופיל שלו.
  • בגד ים
    • name :
      first : "Ada"
      last : "Lovelace"
      born : 1815
      rooms :
      0 : "תוכנה Chat"
      1 : "Famous Characters"

אוספי משנה

אפשר ליצור אוספים במסמכים כשיש נתונים שעשויים להתרחב עם הזמן.

  • היתרונות: ככל שהרשימות גדלות, הגודל של מסמך ההורה לא משתנה. בנוסף, יש לכם יכולות שאילתות מלאות על אוספי משנה, ואתם יכולים להנפיק שאילתות של קבוצות אוספים על פני אוספי משנה.
  • מגבלות: אי אפשר למחוק בקלות אוספים משניים.
  • מהו תרחיש לדוגמה? לדוגמה, באותה אפליקציית Chat, אפשר ליצור אוספים של משתמשים או הודעות בתוך מסמכים בחדר צ'אט.
  • science
    • software
        name : "software chat"
      • משתמשים
        • alovelace
          first : "Ada"
          last : "Lovelace"
        • sride
              first : "Sally"
              last : "Ride"`


    • אסטרופיזיקה
      • ...

אוספים ברמת הבסיס

אפשר ליצור אוספים ברמת השורש של מסד הנתונים כדי לארגן מערכי נתונים שונים.

  • יתרונות: קולקציות ברמת הבסיס מתאימות ליחסים רבים-לרבים, ומאפשרות לבצע שאילתות חזקות בכל קולקציה.
  • מגבלות: ככל שמסד הנתונים יגדל, יכול להיות שההצגה של נתונים שהם בעלי מבנה היררכי תהיה מורכבת יותר.
  • מהו תרחיש לדוגמה? לדוגמה, אפשר ליצור אוסף אחד באותה אפליקציית צ'אט למשתמשים ואוסף אחר לחדרים ולהודעות.
  • משתמשים
    • alovelace
          first : "Ada"
          last : "Lovelace"
          born : 1815
    • sride
          first : "Sally"
          last : "Ride"
          born : 1951
  • חדרים
    • תוכנת
      • messages
        • message1
          from : "alovelace"
          content : "..."
        • message2
          from : "sride"
          content : "..."