سؤال

لقد كنت أفكر في كيفية تنفيذ ميزة الشارة المشابهة لـ SO على موقع ويب جديد. ما هي أفضل طريقة لتخزين معايير الشارات؟

فكرتان:

  • كل الكود
  • "النظام الثاني" - قم بإنشاء بنية ميتا لتحديد الشارات ومعاييرها. قم بتخزين بعض المعلومات في قاعدة البيانات واحصل على رمز الاستعلام عنها لمعرفة الشارات ومعاييرها.

هل هناك طرق أفضل؟

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

المحلول

قواعد.

يمكنك إنشاء أحداث في النظام ، واستخدام القواعد ضمن معالج دفق الأحداث.

على وجه التحديد ، قل أن لديك شارة "صنع 10 مشاركات". لا تقوم بتشغيل "تحديد COUNT (*) من المنشورات التي يكون فيها المستخدم =: مستخدم" لكل منشور. بدلاً من ذلك ، لديك قاعدة بسيطة تشاهد كل منشور ، و "عدهم" ، وتخزين حالة القواعد في ملف تعريف المستخدم.

بهذه الطريقة "صنع 10 وظائف" رخيصة مثل "صنع 1،000،000".

هذا أيضا يجعل النظام أكثر قابلية للتوسيع.

نصائح أخرى

وأنا أتفق مع ويل على هذا واحد.

قم بإنشاء "أحداث" عبر الصفحات ، لذا في كل مرة يحدث فيها حدث أي. يقوم المستخدم بحذف منشور ، وسيقوم بالاستعلام عن وحدة الحدث مع الحدث ، ويتيح أن نقول ، Event_USER_DELETE_POST ، ثم يمكنك تحديد هذا الحدث وبناء استعلام بناءً عليه. يمكنك بعد ذلك تحديد ما إذا كانت الشارة ممنوحة أم لا.

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

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

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