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

عند تنظيم بياناتك في 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"`


    • 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 : "..."