Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Umgang mit ungelesenen Beiträgen in PHP / MySQL

Eine Tabelle mit allen user_ids und post_ids ist eine schlechte Idee, da sie exponentiell wächst. Stellen Sie sich vor, Ihre Forenlösung würde auf eine Million Beiträge und 50.000 Benutzer anwachsen. Jetzt haben Sie 50 Milliarden Datensätze. Das wird ein Problem.

Der Trick besteht darin, eine Tabelle zu verwenden, wie Sie sagten, aber sie enthält nur Posts, die seit diesem Login gelesen wurden, von Posts, die zwischen dem letzten Login und diesem Login gepostet wurden.

Alle Beiträge, die vor der letzten Anmeldung erstellt wurden, gelten als gelesen.

IE, ich habe mich zuletzt am 3.4.2011 angemeldet, und dann melde ich mich heute an. Alle Beiträge, die vor dem 3.4.2011 erstellt wurden, gelten als gelesen (sie sind mir nicht neu). Alle Beiträge zwischen dem 3.4.2011 und jetzt sind ungelesen, es sei denn, sie werden in der Lesetabelle angezeigt. Die gelesene Tabelle wird jedes Mal geleert, wenn ich mich anmelde.

Auf diese Weise sollte Ihre Tabelle mit gelesenen Beiträgen nie mehr als ein paar hundert Datensätze für jedes Mitglied enthalten.