NOSQL/Raven DB أفضل ممارسات
-
26-09-2019 - |
سؤال
أقوم بالتحقيق في مشروع جديد سيكون موقعًا على غرار التواصل الاجتماعي. أنا أقرأ على Ravendb وأحب مظهر الكثير من ميزاته. لم أقرأ على NOSQL كل هذا كثيرًا ، لكنني أتساءل عما إذا كان هناك مكان مناسب ويتناسب مع المدرسة القديمة ، لا يزال SQL هو الخيار الأفضل للأشياء الأخرى.
أفكر في أن قابس الأذونات سيكون مثاليًا لموقع نمط الشبكات الاجتماعية - ولكن هل سيؤدي حقًا في بيئة حيث سيتم الحصول على قاعدة البيانات - أم أنها مُحسّنة لنظام نمط تقارير أكثر حيث يمكن الاحتفاظ به رمي هياكل البيانات الجديدة في قاعدة البيانات وإبلاغها عن تلك الهياكل.
أنا متحمس لاستخدام الأداة المناسبة للوظيفة - سأستخدم MVC3 أو Windsor + إما Nhibernate + SQL Server أو RavendB.
هل يجب أن ألتزم بالمدرسة القديمة SQL أو الذهاب مع الطفل الجديد على الكتلة: Ravendb؟
المحلول
يمكن أن يقترب هذا السؤال من كونه شخصيًا (على الرغم من أنه ليس كذلك) ، فأنت تتحدث عن NOSQL كما لو كان مجرد شيء واحد ، وهذا ليس هو الحال.
عندك
- قواعد بيانات الرسم البياني (neo4j etc) ،
- خريطة/تقليل قواعد بيانات مستندات النمط (الأريكة ، الغراب) ،
- قواعد بيانات المستندات التي تحاول أن تشعر وكأنها قواعد بيانات عادية (Mongo) ،
- مخازن المفاتيح/القيمة (كاساندرا وما إلى ذلك)
- موير يذهب هنا.
يحاول كل منهم حل مشكلة مختلفة عبر وسائل مختلفة ، وما إذا كنت تستخدم أحدها على متجر علائقي تقليدي
- مسألة ملاءمة
- مسألة تفضيل شخصي
في نهاية اليوم ، ل الأولية من المحتمل أن يكون تخزين البيانات لنظام واحد أو قاعدة بيانات مستند أو متجر علائقي هو ما تريده ، على الرغم من أنه بالنسبة لأجزاء مختلفة من نظامك ، قد ينتهي بك الأمر إلى استخدام قاعدة بيانات الرسم البياني (لحساب الجيران وما إلى ذلك) ، أو مخزن المفتاح/القيمة ( مثل Facebook يفعل/فعل رسائل البريد الوارد).
إن الفائدة الرئيسية لاختيار متجر مستندات كمتجر أساسي على متن مجموعة علائقية ، هو أنك لا تقلق بشأن محاولة تعيين الأشياء الخاصة بك في مجموعة من الجداول ، وهناك تكوين أقل تشارك في القيام بذلك .
الجانب السلبي/الاتجاه الصعودي الآخر هو أنه يتعين عليك تعلم شيء جديد وارتكاب أخطاء على طول الطريق.
إذن إجابتي إذا كنت سأصبح مباشرًا؟
- سيكون Ravendb مناسبًا
- سيكون SQL مناسبًا
ما الذي تفضل استخدامه؟ من المحتمل أن أذهب في هذه الأيام إلى Raven ، مع العلم أنه يمكنني تفريغ البيانات في متجر علائقي لأغراض الإبلاغ وربما أفعله أيضًا لأجزاء أخرى من نظامي ، والحصول من خلال جهد تحديد متاجر القراءة/الكتابة المنفصلة هو فوز شامل.
لكن هذا أنا ، وأنا متحيز.