Извините, у меня есть беспокойство:
У меня успешно создана таблица в MySQL:
CREATE TABLE IF NOT EXISTS MESSAGE
(
MESSAGE_ID BIGINT NOT NULL AUTO_INCREMENT
,AUTHOR_ID VARCHAR(30) NOT NULL
,TITLE VARCHAR(100) NOT NULL
,MESSAGE VARCHAR(4095) NOT NULL
,UNREAD_FLAG BOOLEAN NOT NULL DEFAULT TRUE
,CREATION_DATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP
,DATE_LAST_MODIFIED TIMESTAMP NULL
,PRIMARY KEY (MESSAGE_ID)
,FOREIGN KEY (AUTHOR_ID) REFERENCES USER (USR_ID)
);
Как видите, нет ссылок на то, кто получил сообщение (я), по той причине, что один или несколько получателей могут получить одно и то же сообщение.
1) Как бы я реализовал «модель» потока сообщений, чтобы при наличии сообщения, отправленного более чем одному пользователю, получатели могли ответить на сообщение и отслеживать, на какое сообщение ответил получатель? Например. Я отправил сообщение 5 друзьям о вечеринке, и все они ответили. Как я буду хранить записи в ответном сообщении со ссылкой на исходное сообщение? Кроме того, получатель может также ответить на ответное сообщение, создав ответ на ответное сообщение, поэтому в конечном итоге это будет древовидная структура ответного сообщения.
2) Как создать таблицу, в которой более одного получателя получают одно и то же сообщение? У меня была идея создать таблицу с парой receient_id (ссылка на таблицу пользователя) и message_id (идентификатор сообщения). Это эффективно? Причина, по которой я спрашиваю, состоит в том, что если 200 человек получат одно и то же сообщение, то будет 200 таблиц user_id, пара message_id ...
Еще раз спасибо, Мир!
P.S. Я реализовал номер 2), поэтому я думаю, что это не будет проблемой.