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

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

  • לכתוב מסמכים
  • אוספים מרובים
  • קולקציות משנה במסמכים

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

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

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

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

אוספי משנה

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

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


    • astrophysics
      • ...

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

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

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