Нужно сделать чат что то на подобии как сообщения vkontakte. Т.е любой может создать беседу пригласив в комнату n-е количеств людей, после чего между ними идет общение, в любой момент можно закрыть окно чата но открыв его через определенное время все равно увидеть все сообщение от участников беседы и вот для такого пользователя и нужно сделать вывод сообщение, что у него есть непрочитанные сообщения в конкретном чате(комнате)
Я набросал схему БД, но вот как правильно реализовать возможность получить не прочитанные сообщения для каждого пользователя в комнате не могу сообразить. Была идея связать пользователя и сообщение через вспомогательную таблицу read_user_mess с флагом было ли прочитано сообщение пользователем но напрягает, что при создании сообщение придется делать кучу вставок в read_user_mess для user которые находятся к комнате в которую пришло сообщение такой вариант конечно приемлем если туда будут попадать записи только тех кто прочитал сообщение, а не сразу всех кто находится в комнате но тогда как создать запрос на выборку сообщений не прочитанных пользователем к комнате