Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment les forums vous montrent-ils les sujets non lus ?

Le plus simple consiste à suivre la dernière fois que quelqu'un s'est connecté. Lorsqu'il revient visiter, tout ce qui a été mis à jour depuis est évidemment "nouveau".

Cela pose cependant quelques problèmes, car la déconnexion marque effectivement tous les éléments comme lus.

La seule autre façon de procéder serait de maintenir un tableau contenant tous les fils de discussion et le dernier message de ce fil de discussion que chaque utilisateur a vu.

user_id   thread_id   post_id
      1           5        15
      1           6        19

Avec cette information, s'il y a un message dans le fil #5 qui a un ID supérieur à 15, alors vous savez qu'il y a des messages non lus là-bas. Mettez à jour ce tableau uniquement avec le post_id du dernier message sur cette page . Cela signifie que s'il y a 3 pages de nouveaux messages et que l'utilisateur ne consulte que le premier, il saura quand même qu'il y a des messages non lus.