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

benutzerdefiniertes PHP-Forum - zeigt neue/ungelesene Beiträge

Ein Großteil der größeren Forensoftware verwendet eine Nachverfolgungstabelle, um zu verfolgen, wer was gelesen hat, etwa so (stark vereinfacht):

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)
)

Sie verwenden dann einen Join für diese Tabelle, um zu überprüfen, ob ein von Ihnen angezeigter Beitrag gelesen wurde oder nicht. Da Sie Ihre Threads paging werden, sollte dies relativ wenige zusätzliche Abfragen erzeugen (abhängig davon, wie viele Posts Sie pro Seite anzeigen).

Wenn ein Benutzer den Thread besucht, aktualisieren Sie diese Nachverfolgungstabelle mit dem Zeitstempel seines Besuchs. Wenn Sie dann Ihre Thread-Links anzeigen, überprüfen Sie diese Tabelle, um festzustellen, ob ihr last_visit vor dem letzten Post im Thread liegt. Auf diese Weise können Sie auch "aktualisierte" Threads anzeigen, nicht nur "neue".