![]() |
|
||||||||||
|
|||||
|
Регистрация: Oct 2005
Адрес: Климовск
Сообщений: 16
|
Надо, чтоб при просмотре топиков отображалось, есть ли новые сообщения в них, но как это сделать я чё-та не представляю.
Если для каждого юзера в базе данных хранить id тех сообщений, которые он видел, то размеры этой б/д будут огромны. Если просто вычислять, какие сообщения появились с момента последнего посещения юзером форума, то это будет не точно (ведь юзер мог и не просматривать это сообщение в предыдущий раз). Так как же это, все-таки делается??? |
|
|||||
|
Если хранить id не сообщений, а веток, то будет несколько проще
.
__________________
Тут вы найдете ответы на почти все вопросы: А можно ли сделать так ? - Можно. Почему не работает ? - Неправильно сделано. Где ошибка ? - В ДНК. |
|
|||||
|
Регистрация: Jun 2005
Сообщений: 40
|
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
__________________
Что за дурь? 50 символов в подписи!? |
|
|||||
|
Регистрация: Jun 2000
Адрес: $_SERVER['REMOTE_ADDR']
Сообщений: 854
|
COUNT()? А не проще запоминать дату последнего ответа в форуме/топике и уже её сравнивать с куки?
![]()
__________________
X |
|
|||||
|
count(*) вроде быстрее будет.
__________________
Что за дурь? 50 символов в подписи!? |
|
|||||
|
count() работает быстрее обычного селекта только если нет условий.
__________________
Тут вы найдете ответы на почти все вопросы: А можно ли сделать так ? - Можно. Почему не работает ? - Неправильно сделано. Где ошибка ? - В ДНК. |
![]() |
![]() |
Часовой пояс GMT +4, время: 00:36. |
|
|
« Предыдущая тема | Следующая тема » |
|
|