سؤال

أنا أكتب تطبيق Ruby الذي يخزن بيانات نوع الأصول. أي شجرة العائلة.

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

يتم إقران IE A مع B (ثنائية الاتجاه) ولديه الآباء C و D. B لديهما الآباء E و F. A و B لديهما أطفال G و H و I. G يقترن H ، وهكذا.

لذلك فهي ليست متكررة تمامًا لأن عقدة واحدة لديها عقدان من الأصل. لذلك فإن التضمين لا معنى له في MongoDB لأن كلا الوالدين سيقومان بتضمين نفس الشجرة في مكررة. إنه أقرب إلى الرسم البياني الاجتماعي فقط أكثر صلابة (لا يوجد سوى نوعان من العلاقات). أفكر في أن مجموعات Redis ستعمل بشكل جيد للغاية ، ولكن قبل أن أذهب إلى تعقيد المكدس مع استمرار Polyglot ، كنت آمل أن أتمكن من الحصول على بعض التعليقات من الآخرين الذين ربما صمموا هياكل مماثلة. إن القلق الآخر الذي لدي مع Redis هو تخزين كل هذه الأشجار في الذاكرة قد لا يكون فكرة رائعة ، على الرغم من أنني إذا كنت أقوم بتخزين العلاقات في Redis فقط مع بيانات الكائن في مستندات MongoDB ، فمن المحتمل أن تكون على ما يرام.

هل كانت مفيدة؟

المحلول

ربما يجب عليك تجربة قاعدة بيانات الرسم البياني لأنها تبدو أقرب بكثير من المجال. وهناك عدد غير قليل من هناك يمكنك تجربة الخروج http://nosql.mypopescu.com/post/498705278/quick-review-of-existing-graph-databases

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top