Я относительно новичок в создании приложения чата.Ionic, узел js, сокет io, стек mysql используется для построения приложения чата как для индивидуального, так и для группового чата.Таблицы в соответствующей схеме БД показаны ниже




Диалог и его идентификатор рассматриваются как нить в этом дизайне.
Когда новое сообщениевставляется отправителем в группу: таблица 'messenger_threads' заполняется новым идентификатором потока (идентификатором группы, если это групповое сообщение) и темой, если эта запись идентификатора группы является новой, иначе ничего не вставляется.Когда новое сообщение вставляется отправителем в приватном чате: ID потока генерируется с соответствующей парой отправитель-получатель со стороны клиента.Таблица messenger_threads заполняется сгенерированным идентификатором потока.Если разговор с той же парой получателя отправителя находится в таблице, вставка не производится.
Аналогично, участники в групповом и личном чате для одного и того же thread_id (идентификатора сохранения) заполняются в таблице 'messenger_participants'
В таблице 'messenger_messages' новые сообщения вставляются с идентификатором thread_id, телом сообщения и идентификатором отправителя (который является идентификатором user_id в таблице). Таким образом, в отдельном разговоре / потоке (групповом или личном чате) вседоступны сообщения и сведения об отправителе.
В таблице 'user_messages' обновляется идентификатор сообщения и сведения о связанных пользователях (как отправителя, так и получателя), так что действие по очистке сообщения для каждого пользователя может быть обновлено.
Данные идентификатора пользователя извлекаются из таблицы 'users' table
Users Атрибуты 1.id 2. имя пользователя 3.other_details ..
ВозможноПожалуйста, помогите мне в запросе для получения всех разговоров одного пользователя с последним сообщением, которое яИнформация, как Facebook Messenger. Также дайте мне предложения в дизайне БД.