Когда пользователь прочитал сообщение, то добавляем в мердж таблицу запись просто
Склоняюсь тоже к этому.
Решил немного упростить - убрать количество и отмечать темы с новыми сообщениями символом "+", т.е. не считая сообщения
И делать FK не на уровне сообщения, а на уровне самой темы.
Если записей никаких нет для текущего пользователя с темами, то выводим "+".
Как только пользователь заходит в тему, то создаётся запись и наличие этой записи убирает "+" из шаблона.
Как только в тему поступает новое сообщение, все записи, которые относятся к этой теме, удаляются, что заставляет снова выводиться "+" для всех игроков (пришло же новое сообщение)