سؤال

كنت أعمل في مشروع قبل بضعة أشهر ، وكان هناك حاجة لتنفيذ نظام الجائزة. على غرار sنظام شارة Tackoverflow. شارات

ربما لم أقم بتنفيذها بأفضل طريقة ممكنة ، وأنا أشعر بالفضول عما سيكون رأيك فيه.


ما هي الطريقة الجيدة لتتبع أنشطة المستخدم ، اللازمة لمنح الشارة؟

يحتاج نظام Stackoverflow إلى معرفة الكثير من المعلومات ، وأنا أيضًا لدي انطباع بأنه سيكون هناك الكثير من معالجة البيانات التي تعقد الأشياء.

أفترض أن ذلك يحسب الشارات مرة واحدة أو مرتين كل 24 ، وربما يتم تخزين السجلات أو خادم مخصص لحساب الشارة.


أفكار؟

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

المحلول

لا أعتقد أنه معقد كما تعتقد. أشك بشدة في أنه يحسب الشارات مع نوع من سجل نشاط المستخدم (على الرغم من أن قاعدة البيانات بأكملها تقنيًا هي سجل نشاط المستخدم). عندما أنظر إلى قوائم الشارات ، لا أرى أي شيء لا يمكن تنفيذه عن طريق تشغيل استعلام SQL Select.

يمكن أن تكون بعض الاستعلامات معقدة إلى حد كبير ، وقد يكون هناك نوع من آلية التخزين المؤقت الفاخرة ، لكنني لا أرى أي سبب يجعلك تضطر إلى حساب الشارات على دفعات.

نصائح أخرى

بشكل عام ، يمكن أن تعتمد أنظمة الشارة/النقطة على شيئين.

  • سجل النشاط للأحداث المثيرة للاهتمام ، وهذا هو استلام سجل الورق بشكل فعال لما حدث بحيث يمكنك إعادة تركيب من الألف إلى الياء إذا كان هناك حاجة إليها. يمكن أن تكون بسيطة مثل (user_id ، timestamp ، event_id ، event_detail)

  • في معظم الأوقات ، قمت بتصميم نظام التسجيل/النقطة مسبقًا حتى تعرف بالضبط العدادات التي يجب الاحتفاظ بها على المستخدم. الآن الأمر بسيط مثل وجود سجل كبير يحتوي على جميع التفاصيل. (user_id ، reply_points ، login_points ، last_login ، thumbs_up_points ، إلخ ، إلخ.)

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

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