اختيار بنية بيانات

تذكر أنه عند تنظيم بياناتك في Cloud Firestore، يكون لديك بعض الخيارات المختلفة:

  • المستندات
  • مجموعات متعددة
  • المجموعات الفرعية ضمن المستندات

ننصحك بمراعاة مزايا كل خيار من حيث صلته بحالة استخدامك. يتضمّن هذا الدليل بعض الأمثلة على بُنى البيانات الهرمية.

البيانات المتداخلة في المستندات

يمكنك دمج كائنات معقدة، مثل الصفائف أو الخرائط، داخل المستندات.

  • المزايا: إذا كانت لديك قوائم بيانات بسيطة وثابتة تريد الاحتفاظ بها ضمن مستنداتك، يمكنك إعداد بنية البيانات بسهولة وتبسيطها.
  • القيود: هذه القيود ليست قابلة للتطوير مثل الخيارات الأخرى، خاصةً إذا كانت بياناتك تتوسع بمرور الوقت. مع وجود قوائم أكبر أو متزايدة، تزداد المستند أيضًا، مما قد يؤدي إلى بطء أوقات استرداد المستندات.
  • ما هي حالة الاستخدام المحتملة؟ على سبيل المثال، في تطبيق دردشة، يمكنك تخزين أحدث 3 غرف دردشة للمستخدم تمت زيارتها كقائمة متداخلة في ملفه الشخصي.
  • حبيب
    • الاسم :
      first : "Ada"
      الأخير : "Loveace"
      تاريخ الميلاد : 1815
      الغرف :
      0 : "محادثة برامج"
      1 : "Famous Figures"

المجموعات الفرعية

يمكنك إنشاء مجموعات داخل المستندات عندما تكون لديك بيانات قد تتوسع بمرور الوقت.

  • المزايا: لن يتغيّر حجم المستند الرئيسي مع زيادة القوائم. ويمكنك أيضًا الحصول على إمكانات طلبات البحث الكاملة في المجموعات الفرعية، ويمكنك إصدار طلبات بحث للمجموعات على مستوى المجموعات الفرعية.
  • القيود: لا يمكنك حذف المجموعات الفرعية بسهولة.
  • ما هي حالة الاستخدام المحتملة؟ فمثلاً، يمكنك إنشاء مجموعات من المستخدمين أو الرسائل داخل وثائق غرفة الدردشة في تطبيق الدردشة ذاته.
  • العلوم
    • برنامج
      الاسم : "محادثة برامج"
      • مستخدم
        • زهرة الفيل
          أولاً : "آدا"
          الأخير : "Loveace"
        • الانطلاق
          أولاً : "سالي"
          الأخير : "الرحلة"`


    • الفيزياء الفلكية في ""
      • ...

المجموعات على مستوى الجذر

قم بإنشاء مجموعات على مستوى جذر قاعدة البيانات الخاصة بك لتنظيم مجموعات البيانات المتباينة.

  • المزايا: تُعدّ المجموعات على مستوى الجذر مناسبة للعلاقات من متعدد إلى كثير، وتوفّر طلبات بحث فعّالة داخل كل مجموعة.
  • القيود: قد يصبح الحصول على بيانات هرمية بطبيعة الحال معقدًا بشكل متزايد مع نمو قاعدة البيانات.
  • ما هي حالة الاستخدام المحتملة؟ وعلى سبيل المثال، يمكنك إنشاء مجموعة واحدة للمستخدمين في تطبيق الدردشة نفسه وأخرى للغرف والرسائل.
  • مستخدم
    • عروس
      first : "Ada"
      الأخير : "Lovelas"
      من عمر : 1815
    • ركوب الخيل
      أولاً : "سالي"
      الأخير : "الرحلة"
      تاريخ الميلاد : 1951
  • غرفة
    • برامج
      • رسائل
        • message1
          من : "alovelas"
          content : "..."
        • message2
          من : "sride"
          content : "..."