sql >> Database >  >> RDS >> Mysql

aangepast php-forum - toont nieuwe/ongelezen berichten

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".



  1. Hoe de functie TRANSLATE() werkt in SQL Server (T-SQL)

  2. Hoe versier je je databaseschema?

  3. Mysql:Stel het formaat van DATETIME in op 'DD-MM-YYYY UU:MM:SS' bij het maken van een tabel

  4. Wanneer SQL_NO_CACHE gebruiken?