Veel van de grotere forumsoftware gebruikt een volgtabel om bij te houden wie wat heeft gelezen, zoiets als dit (sterk vereenvoudigd):
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)
)
Vervolgens gebruik je een join in deze tabel om te controleren of een bericht dat je weergeeft, wordt gelezen of niet. Aangezien u uw discussielijnen doorbladert, zou dit relatief weinig extra vragen moeten opleveren (afhankelijk van het aantal berichten dat u per pagina laat zien).
Wanneer een gebruiker de thread bezoekt, werkt u deze trackingtabel bij met de tijdstempel van hun bezoek. Wanneer u uw threadlinks weergeeft, controleer dan deze tabel om te zien of hun laatste_bezoek eerder is dan het laatste bericht in de thread. Hiermee kunt u ook "bijgewerkte" discussielijnen weergeven, niet alleen "nieuwe".