Здравствуйте, никак не могу придумать хорошую структуру для чата с учетом условий:
- Пользователь может общаться тет-а-тет с другим пользователем.
- Может общаться с группой пользователей.
- Может общаться в комнате чата.
С первыми двумя условиями нет проблем, сомнения возникают с третьим условием, как правильно хранить и связывать данные.
К примеру есть таблицы:
usersid, loginroomsid, name
Вот дальше уже моя голова не варит - как правильно составить таблицу сообщений(с учетом условий выше) и таблицу активных диалогов(или лучше отталкиваться от таблицы сообщений?)
Проблема в том, что комнаты доступны ВСЕМ пользователям, туда могут входить, выходить, и эти комнаты всегда доступны, а общение между пользователем(-ями) происходит приватно, эти беседы не видны лишним лицам(вот главное отличие групп от комнат).
Буду очень благодарен за развернутый ответ.