В настоящее время я разрабатываю систему обмена сообщениями пользователей (аналогичную Facebook) для моего существующего сайта. У меня уже есть таблица пользователей, и мне просто нужно интегрировать систему обмена сообщениями.Система обмена сообщениями пользователей (PHP/MySQL)
Я начал рассказ об этом вчера (User messaging system) и сделал некоторый прогресс, но структура изменилась совсем немного, поэтому я начинаю новый вопрос.
Что я хочу знать, в чем, собственно, должна выглядеть структура таблицы? Требования заключаются в следующем:
Обмен сообщениями осуществляется между пользователями, и отправитель может отправить сообщение нескольким получателям.
Сообщения отображаются в макете в стиле нити, как разговор 1-1. то есть ответ каждого получателя появится в его собственном потоке.
После создания потока он появится в папке отправленных отправленных сообщений - он не появится в их папке «Входящие», если получатель не отправит ответ.
Отдельные сообщения не могут быть удалены, однако поток можно удалить. Удаление потока не удаляет никаких сообщений, оно просто удаляет этот поток из папки входящих сообщений пользователя (или папки «отправленных сообщений»). У другого пользователя все равно будет доступ к потоку, если он/она не удалил его из папки входящих сообщений (или «отправленных сообщений»).
Когда отправлено сообщение или ответ, для параметра «Состояние чтения» установлено значение «непрочитанное», но это не должно влиять на отправителя. то есть только получатель должен считать его «непрочитанным».
Вот что у меня есть на данный момент:
Table messages ============== id thread_id from_user_id subject body sent_date Table message_threads ===================== id message_id to_user_id from_user_id read_status
что-то еще, чтобы думать о том, когда отправка одного сообщения нескольким получателям, должны ли мы хранить отдельный сообщение для каждого получателя, или просто одно сообщение?
Любое руководство будет высоко оценено.
несколько сообщений будут лучше, проще управлять ими. – Edmhs