Как реализовать структуру хранения сообщений пользователей?

Я хочу реализовать переписку пользователей, но структура базы данных с полями, где будет UserIdFrom и UserIdTo не подойдёт, так как я хочу в дальнейшем сделать групповую переписку.
Тогда получается надо создавать Id сообщения и Id пользователя, кто написал и потом в другой таблице подставлять Id сообщения и пользователей, кому оно адресовано? Или как это делается в соц сетях?
  • Вопрос задан
  • 322 просмотра
Пригласить эксперта
Ответы на вопрос 3
@Fortop
Tech/Team lead
Есть два варианта.

* вводить понятие группы как самостоятельной логической единицы
* разрешить адресацию сообщения более чем одному пользователю

В любом случае будут пользователи, сообщения, адресаты.

Три таблицы. В адресатах в простейшем случае хранится user_id и msg_id
С уникальным ключом по двум полям сразу.

Автор сообщения хранится вместе с сообщением в одной таблицы в виде user_id
Ответ написан
Комментировать
@k2lhu
Делал на двух таблицах, просто добавляете сообщение для каждого пользователя, обычно для двух указывается id_from, id_to, message, только теперь вам необходимо будет для каждого избранного добавлять записи. Однако в таком случае новым членам переписки не получится прочитать сообщения, которые были отправлены до их появления в чате. В моем случае по ТЗ этого не требовалось, работает пока так.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы