سؤال

كتابة تطبيق في Python ، واللعب مع العديد من إعدادات ORM و SQL المستقيم. وكلها قبيحة مثل الخطيئة.

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

في حين أن الأفكار وراء Zodb و Poperyst وغيرها مثيرة للاهتمام ، يبدو أن هناك نقصًا في الحماس بالنسبة لهم :(

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

المحلول

لقد استخدمت Zodb لأكثر من عشر سنوات حتى الآن ، في Zope وخارجها. إنه لأمر رائع إذا كانت بياناتك هرمية. أكبر متجر للبيانات الذي يعمل عليه العميل لديه ربما .. أنا لا dunno ... 100 جيجابايت فيه؟ شيء على هذا الترتيب من الحجم على أي حال.

هنا مقارنة الأداء مع Postgres.

إذا كنت تكتب تطبيق WSGI Web ، فقد تكون هذه الحزم مفيدة:

نصائح أخرى

بالمقارنة مع "أي متجر قيمة رئيسي" ، فإن الميزات الرئيسية لـ ZODB هي التكامل التلقائي لتغييرات السمات مع معاملات الحمض الحقيقية ، والنظيفة ، "التعسفية" إلى كائنات أخرى ثابتة.

Zodb أكبر من مجرد filestorage المستخدمة افتراضيًا في Zope:

  • تتيح لك الواجهة الخلفية لـ Relstorage وضع بياناتك في RDBMs والتي يمكن نسخها احتياطيًا ، وتكرارها ، وما إلى ذلك باستخدام الأدوات القياسية.
  • يتيح Zeo تحجيمًا سهلاً للتطبيقات والوظائف خارج الخط.
  • يتيح دعم الالتزام ثنائي المراحل تنسيق المعاملات بين قواعد البيانات المتعددة ، بما في ذلك RDBMSES (على افتراض أنها توفر طبقة مدركة TPC).
  • تسلسل هرمي سهل بناءً على سمات الكائن أو الاحتواء: لا تحتاج إلى كتابة Joints ذاتية متكررة لمحاكاة ذلك.
  • يجعل دعم blob المستند إلى نظام الملفات تقديم ملفات كبيرة تافهة للتنفيذ.

بشكل عام ، أنا سعيد جدًا باستخدام ZODB لأي مشكلة تقريبًا حيث لا يكون شكل البيانات "مربعًا" بشكل واضح.

وأود أن أوصي به.

ليس لدي أي انتقادات. إذا كان مخزن كائن يبحث عنه ، فهذا هو الذي يجب استخدامه. لقد قمت بتخزين 2.5 مليون كائن فيه من قبل ولم أشعر بقرصة.

تم استخدام Zodb في الكثير من قواعد البيانات الكبيرة

معظم استخدام Zodb هو/ربما كان مستخدمي Zope الذين ترحوا بعيدًا إذا كانوا يهاجرون بعيدًا عن Zope

الأداء ليس جيدًا مثل قاعدة بيانات relatonal+orm خاصة إذا كان لديك الكثير من الكتابة.

الصيانة طويلة الأجل ليست سيئة للغاية ، فأنت تريد حزم قاعدة البيانات من وقت لآخر ، ولكن يمكن القيام بذلك على الهواء مباشرة.

يجب عليك استخدام Zeo إذا كنت ستستخدم أكثر من عملية مع Zodb الخاص بك وهو أبطأ بكثير من استخدام ZodB مباشرة

ليس لدي أي فكرة عن كيفية أداء Zodb على أقراص الفلاش.

مع التخليل يجب أن تكون قادرًا على استخدام أي القيمة الرئيسية قاعدة البيانات بطريقة مماثلة.

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