У меня есть сайт, управляемый пользователями. Я хочу добавить функцию обмена сообщениями. Меня беспокоит управляемость и производительность моей базы данных.
Я думаю об организации этого следующим образом: у меня есть таблица пользователей, и все мои пользователи имеют уникальный идентификатор. Любой инициированный пользователем разговор между двумя пользователями будет иметь запись в «разговорах», и все сообщения в этом разговоре будут использовать внешние ключи, которые ссылаются этот идентификатор_беседы.
Может ли кто-нибудь придумать какие-либо причины, чтобы не использовать этот подход? Мне интересно, насколько хорошо он будет работать в долгосрочной перспективе, при условии, что я использую индексы и ограничиваю свои запросы ~ 20 результатами для каждой страницы.
+--------+
| users |
+--------+
|users_id|
| |
+--------+
+-------------+
|conversations|
+-------------+
|id |
|user_id1 |
|user_id2 |
+-------------+
+----------------------+
|conversations_messages|
+----------------------+
|id |
|conversations_id |
|message_body (varchar)|
|message_time (unix timestamp
+----------------------+
Изменить: я понял, что у меня нет возможности отследить отправителя/получателя. Мой первый инстинкт — просто добавить столбец «отправитель» в разговоры_сообщения.