Я хочу что-то подобное реализовать в своем проекте, только там будет новый добавленный контент с последнего визита.
Подскажите пожалуйста саму логическую идею, а если быть точнее продолжите, а уж накодить я сам смогу)
Вот юзер заходит в базу вноситься новая дата визита, и извлекается последняя дата визита. Последняя дата сравнивается с новыми сообщениями и таким образом получается что выводит новые сообщения. А вот собственно вопрос, как помечать эти сообщения как прочитанные? Что бы они не появлялись после их посещения?
Спустя 8 часов, 2 минуты, 8 секунд (16.05.2010 - 11:18) vagrand написал(а):
сделай флаг is_readed
Спустя 11 минут, 8 секунд (16.05.2010 - 11:29) FatCat написал(а):
Цитата (krimatis @ 16.05.2010 - 04:16) |
Вот юзер заходит в базу вноситься новая дата визита, и извлекается последняя дата визита. |
Здесь в базе хранится две даты: поля last_visit и last_activity.
Сделано это, чтобы не зависеть от сессий: сессии используются для сбора статистики, для защиты от перегрузок и многих других нужд.
Итак:
На каждый запрос страницы считывается поле last_activity. Если между считанным и текущим меньше 15 минут, просто перезаписывается. Если больше 15 минут, начинается работа с полем last_visit: значение считывается и пишется в куки, затем поле перезаписывается на текущее время.
Даты сообщений сверяются не со временем в базе, а со временем в куке: все написанные позже собираются в массив непрочитанных. При их прочтении в пределах одного визита, информация об их прочтении тоже пишется в куках.
Спустя 3 минуты, 27 секунд (16.05.2010 - 11:33) FatCat написал(а):
Цитата (vagrand @ 16.05.2010 - 12:18) |
сделай флаг is_readed |
В какой таблице? Если в таблице сообщений, то по флагу на каждого пользователя - таблица треснет от жирности. Если в таблице мемберов - еще быстрей треснет таблица мемберов от полей сообщений. Сам посчитай хотя бы для 10 000 мемберов и 100 000 сообщений.
Вынести в отдельную таблицу флаги? Это сделано в движке IPB старших версий, и одна лишь эта мелочь в "двушках" жрет ресурсов больше, чем вся генерация страницы в "однушке". Я такое себе ни в жисть ставить не буду.
Спустя 1 час, 20 минут, 43 секунды (16.05.2010 - 12:54) krimatis написал(а):
Да, с базой это будет жестоко.
А вот насчет куков, это конечно гуд, но они же вроде тоже не резиновые? Или резиновые?
А вот насчет куков, это конечно гуд, но они же вроде тоже не резиновые? Или резиновые?
Спустя 2 часа, 5 минут, 30 секунд (16.05.2010 - 14:59) FatCat написал(а):
Цитата (krimatis @ 16.05.2010 - 13:54) |
они же вроде тоже не резиновые? Или резиновые? |
Порядка 6000 символов.
Если писать только айдишники постов по последнему в теме - получится по одному айдишнику на прочитанный топик. Даже при 6-значных айдишниках, можно сохранить инфу о 800 прочитанных топиках в пределах одного визита, этого более чем достаточно.