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

Gestion des messages non lus en PHP / MySQL

Une table contenant tous les user_ids et post_ids est une mauvaise idée, car elle croît de façon exponentielle. Imaginez si votre solution de forum atteignait un million de messages et 50 000 utilisateurs. Vous avez maintenant 50 milliards d'enregistrements. Ce sera un problème.

L'astuce consiste à utiliser un tableau comme vous l'avez dit, mais il ne contient que les messages qui ont été lus depuis cette connexion, des messages qui ont été publiés entre la dernière connexion et cette connexion.

Tous les messages publiés avant la dernière connexion sont considérés comme lus.

IE, je me suis connecté pour la dernière fois le 03/04/2011, puis je me connecte aujourd'hui. Tous les messages publiés avant le 03/04/2011 sont considérés comme lus (ils ne sont pas nouveaux pour moi). Tous les messages entre le 03/04/2011 et maintenant ne sont pas lus à moins qu'ils ne soient vus dans le tableau de lecture. La table de lecture est vidée à chaque fois que je me connecte.

De cette façon, votre table de publications lues ne devrait jamais contenir plus de quelques centaines d'enregistrements pour chaque membre.