2011-12-26 2 views
0

Я новичок в MYSQL, я работаю над модулем сообщений. моя структура таблицы такова.Структура таблицы

Message => идентификатор, сообщение, созданное

MessageUser => идентификатор, message_id, receiver_id, sender_id, is_read

User => идентификатор, имя пользователя, адрес электронной почты

sender_id и receiver_id ассоциировать с пользователем .id и message_id связаны с Message.id

Когда я выполняю запрос для моего почтового ящика, я помещаю условие (WHERE receiver_id = $ param); То же, что и для моего состояния отправленного товара (WHERE sender_id = $ param);

его рабочего fine.but проблема occoured когда я удалить сообщение из моего почтового ящика или отправленных сообщений

bcoz я выполнить мой запрос на удаление по UserMessage таблице.

, когда это сообщение удаляется из моего отправленного окна, оно также удаляется из папки «Входящие» другого пользователя.

У меня 2 soloutions

. Добавьте другой столбец is_delete и установите его значение в зависимости от удаления со стороны приемника или отправителя.

. разделите таблицу MessageUser на две таблицы: Sender => id, message_id, sender_id; Receiver => id, message_id, receiver_id, is_read;

Позвоните мне, что лучше solloution. а также рассказать мне еще solloutions

Спасибо заранее пожалуйста ответ быстро

+0

Из перечисленных вами двух вариантов: вариант 2 лучше, потому что вариант 1 не соответствует указанным требованиям: вам нужно добавить 2 столбца в вариант 1: один для Sender_Deleted, один для Receiver_Deleted. Тем не менее, я предполагаю, что всегда есть 1 отправитель и 1 приемник. Может ли быть 1 отправитель и много приемников? – xQbert

+0

да может быть 1 отправитель и несколько приемников .. – Ahsan

ответ

0

Варианта 3) рассмотреть follwing:

пользователя Таблица (Может быть отправителем или получателем) Идентификатор_пользователь PK стол

сообщения (сообщение или ответ) MessageID (PK) ParentMessageID (FK to self)

Таблица UserMessage < - Вы принимаете меры для удаления в этой таблице. сообщения сохраняются целыми до тех пор, пока ALL userMesages не будут помечены как удаленные для всех родительских сообщений &. SenderID ReceiverID MessageID Статус (Удаляется, isRead и т.д.)

0

ИМХО Я думаю, что лучший способ, чтобы добавить колонку с

перечисления (отправитель, получатель, и) типа.

Если хранение sender она удаляется от отправителя, если это значение receiver тогда он был удален приемником и так далее.

Смежные вопросы