Mysql
 sql >> Database >  >> RDS >> Mysql

forum php personalizzato - mostra post nuovi/non letti

Molti dei software per forum più grandi utilizzano una tabella di monitoraggio per tenere il passo con chi ha letto cosa, qualcosa del genere (molto semplificato):

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

Quindi utilizzi un join su questa tabella per verificare se un post che stai visualizzando è stato letto o meno. Dal momento che eseguirai il paging dei tuoi thread, questo dovrebbe generare relativamente poche query aggiuntive (a seconda di quanti post mostri per pagina).

Quando un utente visita il thread, aggiorna questa tabella di monitoraggio con il timestamp della sua visita. Quindi, quando visualizzi i link dei tuoi thread, controlla questa tabella per vedere se la loro last_visit è precedente all'ultimo post nel thread. Ciò ti consente anche di mostrare i thread "aggiornati", non solo quelli "nuovi".