كيف تظهر لك المنتديات موضوعات غير مقروءة؟

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

  •  22-09-2019
  •  | 
  •  

سؤال

لدي منتديات مناقشة المستخدم التي قمت بترميزها في PHP/MySQL ، أرغب في معرفة كيف يمكن لمنتديات الأسماء الكبيرة أن تجعلها تُظهر لك المواضيع التي لها منشورات جديدة فيها ، عادةً عن طريق تغيير صورة أيقونة بجوار الخيط دون استخدام أي موارد بالكاد ؟

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

المحلول

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

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

الطريقة الأخرى الوحيدة التي يمكن أن أفكر في القيام بها هي الحفاظ على جدول يحتوي على جميع مؤشرات الترابط وأحدث مشاركة في هذا الموضوع الذي شاهده كل مستخدم.

user_id   thread_id   post_id
      1           5        15
      1           6        19

مع هذه المعلومات ، إذا كان هناك منشور في الموضوع رقم 5 الذي يحتوي على معرف أكبر من 15 ، فأنت تعلم أن هناك منشورات غير مقروءة هناك. قم بتحديث هذا الجدول فقط مع post_id من آخر مشاركة في تلك الصفحة. هذا يعني أنه إذا كانت هناك 3 صفحات من المشاركات الجديدة ، والمعية تعرض المستخدم الأول فقط ، فسيظل يعرف أن هناك منشورات غير مقروءة.

نصائح أخرى

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

بالطبع ، هناك العديد من الطرق للجلد قطة واعتمادًا على ما يريده منشئو المنتدى ، يمكن تغيير ما سبق ليتمكن من تغييره

العاصمة

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

يمكنك إنشاء جدول خاص في قاعدة البيانات الخاصة بك مع أعمدة مثل user_id و thread_id وبقيود مناسبة على جداول المستخدم والموضوع ومفتاح أساسي يحتوي على معرفات المستخدم والمعرف.

الآن عندما يفتح شخص ما موضوعًا ، يمكنك فقط إدراج هذا الجدول الخاص بالمستخدم في هذا الجدول الخاص.

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

  • جميع المواضيع مع علامة "غير مقروءة"
  • جميع المواضيع غير المقروءة
  • المواضيع يقرأها المستخدم xy

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

فقط راقب مفاتيحك وفهارسك لمنع تأثيرات الأداء السلبية الثقيلة للغاية. حاول أن تقرأ من طاولة المستخدم فقط من خلال الانضمام إليه في استفساراتك الحالية. سيعمل ذلك بشكل أسرع بكثير من تنفيذ الاستعلامات الفردية طوال الوقت.

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

سيكون بنية الجدول شيئًا مثل

forum_id thread_id user_id

مع الإضافية الاختيارية has_read_id للمفتاح الأساسي الخاص بك ، مع الحقول الأخرى التي تصنع مفتاح مركب.

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