PHP/mySQL - إعادة حساب منتظمة للقيم المعيارية عندما يقوم المستخدمون الجدد بإرسال بياناتهم

StackOverflow https://stackoverflow.com/questions/83088

سؤال

أواجه نوعًا جديدًا من المشاكل التي لم أواجهها بعد خلال "مسيرتي المهنية" الصغيرة جدًا في مجال البرمجة، وأود أن أعرف رأيك حول كيفية التعامل معها بشكل أفضل.

الوضعيقوم تطبيق بحثي (php/mysql) بجمع البيانات الصحية المتعلقة بالتوتر من المستخدمين.يحصل المستخدم على تحليلات بعد ملء الاستبيان.يتم تحويل قيمة كل معلمة إلى قيمة مئوية باستخدام معيار (المتوسط ​​والانحراف المعياري لمجموعة البيانات الموجودة).

المهمةنظرًا لأن المزيد والمزيد من الأشخاص يقومون بملء الاستبيان، فهناك إمكانية لجعل القيم المرجعية (المتوسط ​​/ SD) أكثر دقة من خلال إعادة حسابها باستخدام بيانات المستخدم الجديدة.أرغب في أن تقوم قاعدة البيانات بتشغيل برنامج نصي بانتظام يقوم بتحديث القيم المعيارية.

السؤاللم أستخدم أبدًا السوابق المخزنة حتى الآن وليس لدي سوى فكرة بسيطة عما هي عليه ولكن بطريقة ما لدي شعور أنه ربما يمكنهم مساعدتي في هذا؟أم يجب أن أكتب البرنامج النصي بتنسيق php ثم أقوم بإعداد وظيفة cron؟

[عدل]بعد الإجابتين الأوليين، يبدو أن cron هو الحل الأمثل.[/عدل]

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

المحلول

ما تفكر فيه يمكن القيام به بعدة طرق.

  1. يمكنك إعداد مشغل في قاعدة بياناتك لإعادة حساب القيم كلما تم تحديث سجل جديد.يمكنك تخزين الكود المطلوب لتحديث القيم في sproc إذا لزم الأمر.

  2. يمكنك كتابة برنامج نصي PHP وتشغيله بانتظام عبر cron.

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

من الواضح أنه سيتعين عليك تقييم متطلباتك قبل اختيار الطريقة.

نصائح أخرى

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

ربما تكون أسهل طريقة لإنجاز هذا العمل هي كتابة برنامج نصي بنفس اللغة التي يستخدمها موقع الويب الخاص بك (يبدو مثل PHP) واستدعائه من cron.

لا داعي لجعل الأمر أكثر تعقيدًا مما يجب من خلال وضع المنطق في مكانين (حساباتك الحالية والإجراء المخزن).

إذا كان حجم البيانات كبيرًا بدرجة كافية بحيث يكون حسابها سريعًا أكثر من اللازم، فإما:

  1. وظيفة Cron باستخدام برنامج php النصي لإلغاء تسوية الإجماليات
  2. تشغيل على الإدخالات التي تزيد الإجماليات

اذهب مع وظيفة كرون طريق.أعمال بسيطة ومتينة.في عالم PHP/MySQL، أود أن أقول إن الإجراءات المخزنة محظورة.

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