Привет всем! Пишу свой форум, появилась интересная задачка. Необходимо сделать функцию, которая реализована на каждом форуме, а именно, пометка тем как прочитанные, как новые, как обновленные, с новыми сообщениями и тд. В голове пока слабо укладывается как такое можно реализовать, ведь пользователей может быть очень много, и каждому из них прописывать прочитал ли он конкретную тему или нет - не вариант конечно же) Подскажите, пожалуйста, правильно решение :roll: Заранее спасибо откликнувшимся!
Тем не менее это один из наиболее полных вариантов. Можно упростить, считая непрочитанными все темы, где имеются сообщения с датой создания позднее момента последнего захода пользователя. Но в рамках одной сессии тебе всеравно придется учитывать отдельно, просмотрел ли пользователь эту тему.
Именно этим вопросом я не задавался, но была проблема такая: все отвечавшие в теме + топикастер получают уведомление на емейл при появлении нового ответа в данной теме. Как наиболее эффективно (общий знаменатель моей проблемы и описанной в этом топике) сделать "отписку от уведомлений". Собственно, реализовал без доп. таблицы подписей на темы. Если будет актуально - спрашивай.
Simpliest, что ж спасибо, будем пробовать) Apple, за ссылку спасибо) alexflom, актуально) расскажи пожалуйста))))))))))
Решение реализуется всего доп. столбцом в таблице ответов. Оно все-равно избыточно, поэтому если может быть оптимизировано. Суть заключается в следующем. В таблицу ответов (которая содержит текст, дату, автора и т.д. ответа на топик) добавляем булево поле is_signed. Свойство значений этого поля таково: если выбрать все ответы данного юзера на данный топик, и среди них окажется хотя бы один == false - юзер НЕ получает уведомление. Если все == true - получает. При этом отписка от темы происходит установкой одного любого (или всех сразу) значений is_signed=false для данного юзера и данной темы. Но тут можно играться: например проверять не все is_signed а только последнее (флаг в последнем ответе юзера на тему будет показывать: подписан он или не подписан на тему), но тогда при добавлении нового ответа нужно будет всегда копировать is_signed из предыдущего его ответа в этой теме. В описанном же случае по-умолчанию при новом ответе is_signed может равняться true.