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