Я реализовал очень простую систему сообщений на основе PHP / MYSQL в социальной платформе разработчика приложений.
Структура таблицы сообщений выглядит следующим образом:
Если вы перейдете в раздел личных сообщений, вы увидите, что ваши сообщения просто отсортированы по message_timestamp. Это не очень хорошее удобство использования.
Я хочу провести рефакторинг этого, аналогично WhatsApp: как пользователь, я хочу перейти в раздел личных сообщений и получить обзор всех моих партнеров по чату. Когда я нажимаю на чат-партнера, я ожидаю увидеть историю наших сообщений.
Может быть, я могу изменить свой стол на это?
И затем, когда я нажимаю на пользователя, разговор будет выбран (… WHERE ‘разговор_ид’ = ‘123’ ORDER BY ‘message_id’ ASC)
Как вы думаете? Это слишком тяжело для базы данных? Есть ли лучшее решение?
Должен ли я использовать вложенные таблицы? А как насчет производительности тогда?
2.) [Ответил -> «НЕТ»] Лучше ли хранить сообщения в другой базе данных, отделенной от других таблиц, где я делаю другие вещи моей платформы?
3.) [Ответил -> «Использовать события, отправленные сервером»] Как показать полученное сообщение без перезагрузки страницы. Могу ли я использовать Обозреватель на основе Jquery-Ajax-PHP?
Примечание: для меня не проблема использовать / создавать систему чатов, но я хочу иметь возможность читать старые сообщения каждый раз, когда возвращаюсь на страницу и захожу в систему.
Задача ещё не решена.
Других решений пока нет …