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

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


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

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

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

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