Проекты, которые я бы предложил:
**ChatRooms** **ChatMessages** **ChatUsers**
room_id id user_id
serial room_id room_id
type (0/1/2) sender_id added_on (timestamp)
users (user count) text
time (timestamp)
Теперь этот «тип» будет указывать погоду, если номер общий (0), групповой (1) или частный (2).Всякий раз, когда пользователь присоединяется к чату, его информация будет добавляться в таблицу ChatUsers с указанным идентификатором чата, и при выходе из этого чата эта строка будет удаляться из таблицы ChatUsers.Преимущество таблицы ChatUsers состоит в том, что когда вы будете отображать общее количество пользователей в комнате, вам не нужно будет подсчитывать все строки из таблицы ChatUsers, вместо этого вы просто выберете значение из таблицы ChatRooms столбца 'users', которое равно строкамопределенной комнаты в таблице ChatUsers, вам нужно будет увеличивать столбец пользователей комнаты при каждом добавлении строки в таблицу ChatUsers, а также уменьшать при удалении строки с идентификатором комнаты. Вы также можете отображать информацию о пользователях в комнатевыбирая значения столбца 'user_id' из строк, которые имеют идентификатор конкретной комнаты в столбце 'room_id', а затем извлекает информацию о следующих пользователях с этими идентификаторами из таблицы пользователей.
Надеюсь, это то, чтоВы искали.