Непрочитанные сообщения и комментарии

Привет всем,

Для начала поздравляю всех C Наступающим/Наступившим!

Вопрос состоит в следующем: Требуется при выводе сообщений помечать новые (сообщения) специальными значками, как это сделано на lj, habr и т.п.

Из более менее маленьких велосипедов на ум приходит сделать привязку ко времени просмотра:

Имеется условие:
если ( ДатаПоследнегоПосещения < ДатаПоследнегоКомментария ) 
то { пометить маркой все комментарии с датой больше ДатаПоследнегоПосещения и обновить ДатаПоследнегоПосещения }

и база данных с таблицей(Айди Поста, Айди Пользователя иДатаПоследнегоПосещения).

В данном случае будет «условно большое» кол-во записей в базу данных. Само количество не пугает, пугает данный способ, в связи с этим интересуюсь, есть ли способ менее громоздкий.

Спасибо!
  • Вопрос задан
  • 4694 просмотра
Решения вопроса 1
JhaoDa
@JhaoDa
LaravelRUS Team
А что тут еще можно придумать? Выбирете все сообщения, относящиеся к нужному топику и со временем, старше времени последней активности пользователя в этом топике (или на сайте вообще). При нормальной модели данных, при наличии индексов — всё будет работать.
Да и «кол-во записей в бд» знаете ли, зависит от задач — кому-то 100 000 уже много, а другому и 10 млн нормально. Маловато подробностей…
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@tenshi
можно оптимизировать так: по умолчанию считаем все посты полностью прочитанными, но когда создаётся пост прописывать для всех юзеров время прочтения = текущее. а каждый день вычищать все такие записи, которые старше, допустим, года. тогда при 500 юзерах и 150 постах в год получаем единовременно не более 75000 записей. при посещении запись конечно обновляем/добавляем, но это мелочи.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы