سؤال

لقد قمت بتطبيق تطبيق iPhone يستخدم (داخليًا) SQLite كقاعدة بياناته. كان القصد من ذلك هو التواصل في نهاية المطاف مع خادم عبر PHP ، والذي سيستخدم MySQL كقاعدة بيانات خلفية.

لقد اكتشفت للتو محرك تطبيقات Google ، لكنني أعرف القليل عنه. أعتقد أنه سيكون من الجيد استخدام واجهة Python للكتابة إلى متجر البيانات - لكنني أعرف القليل جدًا عن قدرة GQL. لقد كتبت بشكل أساسي جميع رمز قاعدة بيانات العمل باستخدام MySQL ، حيث أجريت اختبارًا داخليًا على iPhone مع SQLite. هل ستقدم GQL نفس الوظيفة التي يمكن لـ SQL؟ قرأت على الموقع أنه لا يدعم الانضمام إلى الاستعلامات. أيضا هل هي حقا علائقية؟

في الأساس ، أعتقد أن سؤالي هل يمكن أن يستخدم تطبيق SQL الخلفي عادةً مع محرك تطبيق Google ، مع GQL؟

آمل أن يكون هذا واضحًا ... أي إرشادات رائعة.

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

المحلول

صحيح أن Google App Engine هو منتج رائع للغاية ، لكن مخزن البيانات هو وحش مختلف عن قاعدة بيانات MySQL العادية. هذا لا يعني أن ما تحتاجه لا يمكن القيام به مع GAE Datastore ؛ ومع ذلك قد يستغرق الأمر بعض إعادة العمل في نهايتك.

الأبرز الذي لاحظته مباشرة في البداية هو أن GAE تستخدم رسم خرائط للكائنات لمخطط تخزين البيانات الخاص به. يتم استمرار الرسوم البيانية للكائنات في قاعدة البيانات ، مع الحفاظ على سمات وعلاقات مع كائنات أخرى. في كثير من الحالات ، خريطة ORM (تعيينات الكائن العلائقية) بشكل جيد إلى حد ما على قاعدة البيانات العلائقية (هذه هي الطريقة التي تعمل بها السبات). التعيين ليس مثاليًا على الرغم من أنك ستجد أنك بحاجة إلى إجراء تغييرات لاستمرار بياناتك. أيضا ، GAE لديها بعض الموازين الفريدة التي تعقد الأمور قليلا. واحد يناقض أن يزعجني كثيرًا هو عدم القدرة على الاستعلام عن مسارات السمات: على سبيل المثال "SELECT ... WHERE DOG.Owner.Name = 'Bob'". هذه القواعد هي التي تجبرك على قراءة وفهم كيفية عمل GAE Data Store قبل القفز.

أعتقد أن GAE يمكن أن تعمل بشكل جيد في وضعك. قد يستغرق الأمر بعض الوقت لفهم ثبات ORM بشكل عام ، و GAE Datastore في تفاصيل.

نصائح أخرى

تقدم GQL أي وظائف على الإطلاق ؛ يتم استخدامه فقط لاستفسارات مختارة ، ولا يوجد سوى تكوين كتابة استفسارات أسهل لمبرمجي SQL. وراء الكواليس ، يحول استفساراتك إلى كائنات db.query.

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

أنا أعتقد ذلك مقالة - سلعة يجب أن تساعدك.

ملخص: الحوسبة السحابية وتطوير البرمجيات للأجهزة المحمولة هما تقنيتان ساخنتان للغاية يتم دمجهما بشكل متزايد لإنشاء حلول مختلطة. من خلال هذه المقالة ، تعرف على كيفية توصيل محرك تطبيق Google ، عرض الحوسبة السحابية من Google ، مع iPhone ، منصة Apple المحمولة. سترى أيضًا كيفية استخدام مكتبة Open Source ، Touchengine ، للتحكم في بيانات التطبيق ديناميكيًا على iPhone عن طريق الاتصال بسحابة محرك التطبيق والتخزين المؤقت لتلك البيانات للاستخدام دون اتصال.

هذا سؤال عام جدا :)

إجابة قصيرة: نعم. سيتضمن بعض التفكير في نموذج البيانات الخاص بك ، ولكن نعم ، التغييرات هل يمكنك دعمها مع GAE Datastore API.

عندما تقوم بإنشاء نماذج Python الخاصة بك (فكر في هذه الجداول) ، يمكنك بالتأكيد تحديد الإشارات إلى النماذج الأخرى (حتى الآن لدينا مفتاح خارجي). عند تحديد هذا النموذج ، ستعيد نماذج المرجعية (مثل الانضمام إلى حد كبير).

من المرجح أن يعمل ، لكنه ليس انخفاضًا في استبدال خادم MySQL.

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