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

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

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

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

נתונים בתצוגת עץ במסמכים

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

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

אוספי משנה

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

  • יתרונות: כשהרשימות שלכם גדלות, גודל המסמך הראשי לא משתנה. בנוסף, יש לכם יכולות חיפוש מלאות על אוספי משנה, ואתם יכולים להפעיל שאילתות של קבוצות אוספים על אוספי משנה.
  • מגבלות: אי אפשר למחוק בקלות אוספים משניים.
  • מהו תרחיש לדוגמה? לדוגמה, באותה אפליקציית צ'אט אפשר ליצור אוספים של משתמשים או הודעות בתוך מסמכים של חדרי צ'אט.
  • science
    • software
        name : "software chat"
      • users
        • 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 : "..."