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

forum php personnalisé - affichage des messages nouveaux/non lus

Beaucoup de logiciels de forum plus importants utilisent un tableau de suivi pour savoir qui a lu quoi, quelque chose comme ceci (très simplifié) :

CREATE TABLE topic_tracking (
    user_id INT NOT NULL,
    topic_id INT NOT NULL,
    last_visit DATETIME NOT NULL,
    PRIMARY KEY (user_id, topic_id)
)

Vous utilisez ensuite une jointure sur cette table pour vérifier si un message que vous affichez est lu ou non. Étant donné que vous paginerez vos fils de discussion, cela devrait générer relativement peu de requêtes supplémentaires (selon le nombre de messages que vous affichez par page).

Lorsqu'un utilisateur visite le fil de discussion, mettez à jour ce tableau de suivi avec l'horodatage de sa visite. Ensuite, lors de l'affichage des liens de votre fil, consultez ce tableau pour voir si leur last_visit est antérieur au dernier message du fil. Cela vous permet également d'afficher les discussions "mises à jour", pas seulement les "nouvelles".