سؤال

سأبدأ في تصميم تطبيق ويب قريبًا ، وعلى الرغم من أن لدي الكثير من الخبرة في القيام بذلك في عالم SQL ، فليس لدي أي فكرة عما أحتاج إلى أخذه في الاعتبار للقيام بذلك بهدف الترحيل إلى GAE في القريب جدًا مستقبل.

بدلاً من ذلك ، يمكنني تصميم تطبيق GAE منذ البداية ، وهكذا في هذه الحالة ، ما هي الاختلافات التي أحتاجها إلى أخذها في الاعتبار؟ بمعنى آخر ، ما هي DOS و Donts لكتابة تطبيقك لـ GAE ، القادمة من قواعد بيانات علائقية في الماضي.

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

المحلول

فقط من أعلى رأسي:

  • إنه في الحقيقة مجرد متجر مفتاح ، لا تنخدع بأشياء مثل GQL (وهو مجرد مجموعة فرعية من SQL Select)
  • لا توجد صلات - غالبًا ما عليك أن تنسى أو تنسى
  • مهلة أكثر أو أقل تكرارا
  • (جدا) الوصول البطيء مقارنة بقاعدة SQL المحلية.
  • عد باهظ الثمن
  • تم تنفيذ الإزاحة (في المختار) على جانب العميل - لذا في الواقع ، يمكنك إحضار جميع السجلات إلى الإزاحة - كما أشار نيك جونسون في أحد التعليقات ، فهو ليس جانب العميل ، حتى الآن ، حيث أن الحد الأقصى الذي يبلغ 1000 قد ذهب مشابه لقواعد بيانات SQL.
  • (تمت إزالته مؤخرًا) من 1000 صفوف جلب
  • حدد الأداء يتناقص بشكل كبير مع زيادة عدد الصفوف التي تم إرجاعها
  • من الصعب القيام بالترحيل لأنه يتعين عليك القيام بها باستخدام طلبات HTTP العادية ويتم قتل كل طلب بعد 30 ثانية. عليك اللجوء إلى قوائم انتظار المهام التي تقوم بمعالجة الصفوف على دفعات
  • هناك مفاتيح أجنبية زائفة - تسمى referenceproperties في Python API - ولكن لا يتم فرضها بأي شكل من الأشكال - إذا كان شخص ما/شيء حذف كائن مستهدف ، فأنت لديك ما يعرفه مؤشر متدلي في C ++
  • يجب فهرسة الحقول التي تستخدمها للاستعلامات ، ولكن لا تزال تستخدم مفتاح (نوع من المفتاح الأساسي لكل صف/مثيل) يجعل استفساراتك تعمل بشكل أسرع
  • قد يستغرق بناء الفهارس على مثيل Live الكثير من الوقت (ولا يمكنك تقليله) وبدونها غالبًا ما لا يستطيع تطبيقك العمل. بيرة وصبر موصى به بشدة ..
  • الكثير من الحدود الاصطناعية (مثل الحد الأقصى الذي تمت إزالته بالفعل من 1000). EG GQL 'in "هو مجرد سكر النحوي لمتعددة أو S ، وهناك حد أعلى من 30 قيم المستخدمة.

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

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