Просмотр полной версии : новые сообщения в форуме
Надо, чтоб при просмотре топиков отображалось, есть ли новые сообщения в них, но как это сделать я чё-та не представляю. :confused:
Если для каждого юзера в базе данных хранить id тех сообщений, которые он видел, то размеры этой б/д будут огромны. :(
Если просто вычислять, какие сообщения появились с момента последнего посещения юзером форума, то это будет не точно (ведь юзер мог и не просматривать это сообщение в предыдущий раз). :(
Так как же это, все-таки делается???
Если хранить id не сообщений, а веток, то будет несколько проще :).
maelstorm
24.10.2005, 15:36
Skubent: а поподробней низя?
Гхм. Неоптимизированный вариант, думать лениво.
Таблица:
CREATE TABLE view_topic (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
user_id INT,
topic_id INT,
view_time DATETIME)
При просмотре юзером топика :
"UPDATE view_topic SET view_time =".date("Y-m-d H:i:s")."WHERE user_id=$user_id AND topic_id=$topic_id"
При показе топиков:
SELECT topic_id FROM view_topic, topics_table WHERE user_id=$user_id AND topic_last_post>view_time - это не читанные
и
SELECT topic_id FROM view_topic, topics_table WHERE user_id=$user_id AND topic_last_post<=view_time - это читанные
Ну, красотищщу уже сами наводите...
в куке хранится время последнего визита в форум и сравнивается при момощи count(*) where date>$cookieTime
Constantine
25.10.2005, 23:27
COUNT()? А не проще запоминать дату последнего ответа в форуме/топике и уже её сравнивать с куки? ;)
count(*) вроде быстрее будет.
count() работает быстрее обычного селекта только если нет условий.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.