Mysql ile okunmamış konular listesini yapmak nasıl

1 Cevap php

What is an efficient way to display a list with unread posts in a forum? It is possible to track the user and logging each post he or she visits and registering it in a new table.

Ben bu çok verimli olmadığını düşünüyorum. Bunu yapmak için daha etkili bir yolu nedir?

1 Cevap

Eğer gerçekten bunu istiyorsanız, bir tablo gibi olabilir

UserVisit: user_id, topic_id, last_visited_at

which table you update whenever a user opens a topic. Then you can select the topics of which the id is not in this table, or which has a post added later than last_visited_at. Something like:

SELECT *
FROM Topic
WHERE Topic.id NOT IN (SELECT topic_id FROM UserVisit WHERE user_id = $user_id)

UNION

SELECT *
FROM Topic
LEFT JOIN UserVisit ON Topic.id = UserVisit.topic_id
WHERE user_id = $user_id
AND UserVisit.last_visited_at < Topic.last_post_at

Ama bunun yerine, sadece siteye kullanıcının son ziyaretinizden beri yeni mesaj var konu ile kullanıcıya sunmak öneririz. : Bunu yaparsanız, tüm bu tablo gerekmez, sen gibi konular sorgulayabilirsiniz

SELECT *
FROM Topic
WHERE Topic.last_post_at > $users_last_visit