Здравствуйте, планирую сделать на сайте пользовательский чат. То есть не общий чат, а между конкретными пользователями, два человека.
Я хотел бы узнать, правильную ли структуру бд я спроектировал.
Есть таблица rooms, в ней поля id, userid1, userid2, lastupdate
Далее идёт таблица messages, в ней поля id, roomid, message, timestamp
Далее
При отправке сообщения, мы проверяем есть ли комната где userid1 = SESSION id, и userid2 = id пользователя которому адресовано сообщение. Или же проверяем наоборот, где userid1 = id адресату, а userid2 = SESSION id. Так как порядок может быть разным, в зависимости от того кто первый начал диалог.
Если комнаты нет, мы её создаем, а затем отправляем в неё сообщение.
Затем при заходе в чат, мы запрашиваем из БД комнату, где участник1, и участник 2, это наш SESSION пользователь, и адресат.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники