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

חשוב לזכור: כשאתם מבינים את המבנה של הנתונים ב-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"`


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

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

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

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