Я создаю таблицу сообщений / комментариев в MySQL для сайта социальной сети. У меня есть система обмена сообщениями, в которой участвующие два пользователя (только два и не более того) будут иметь один / уникальный поток. Таким образом, всякий раз, когда пользователь отправляет сообщение другому пользователю, он проверяет, имел ли оба пользователя уникальный поток, если НЕ, то он создает уникальный поток для обоих пользователей.
create table comment_threads (
thread_id int (PK),
user_id_1 int,
user_id_2 int,
created datetime
);
create table comments (
comment_id int (PK),
thread_id int (FK),
comment text,
created datetime
);
Всякий раз, когда пользователь отправляет сообщение другому пользователю каждый раз, я должен проверить, имел ли предыдущий поток оба участника-участника, поэтому я должен запросить базу данных об этом (QUERY 1). И еще раз, если не было никакого потока, чтобы создать поток в comment_thread (QUERY 2). Затем снова оставить комментарий в таблице комментариев (QUERY 3). Поэтому я должен запросить два или три раза для обмена сообщениями.
Вопросы:
- Являются ли приведенные выше таблицы правильным способом решения моей проблемы или требуется некоторая коррекция?
- Есть ли другой лучший способ сделать это?