Я написал простой форум на PHP с использованием PostgreSQL. Форум состоит из нескольких подфорумов (или категорий, если хотите), которые содержат темы. У меня есть таблица, в которой хранится информация о том, когда пользователь последний раз посещал тему. Это примерно так: user_id, topic_id, timestamp.
Я могу легко определить, какие темы следует пометить как непрочитанные, сравнив отметку времени последнего ответа на тему с отметкой времени последнего посещения пользователя.
Мой вопрос: как мне эффективно определить, какие подфорумы (категории) следует пометить как непрочитанные? Все, что я придумал, это следующее: каждый раз, когда пользователь посещает тему, обновляет временную метку посещения и проверяет, прочитаны ли все темы из текущего подфорума или нет. Если они все прочитаны, пометьте подфорум как прочитанный для пользователя. Иначе, отметьте это как непрочитанное. Но я думаю, что должен быть другой путь.
Заранее спасибо.