Доброго времени суток.
Пытаюсь написать систему личных сообщений, разбитых по диалогам.
В чем суть - пользователь А посылает сообщение пользователю B, в личных кабинетах у пользователей A и B появляется название этого диалога (внутри которых находятся сообщения). Пользователь может удалить как сообщение из диалога, так и весь диалог, причем если пользователь A удалит у себя сообщение или весь диалог ,то они останутся у пользователя B.
Значит вот в чем возникла сложность. Создал 3 таблицы, юзеры , диалоги и сообщения.
Таблица диалог содержит в себе поля (номер диалога, получатель, отправитель, название диалога, кол-во сообщений) и таблица с сообщениями (номер диалога, сообщение, дата, тип (входящее исходящее), статус (прочитано или нет))
Не могу до конца определится с полями и связями между полями, а также сложностью удаления сообщений и диалогов. Додумался только как то дублировать диалоги для отправителя и получателя.
Может быть кто сталкивался с таким.
TranceIT
22.03.2013 - 16:05
Цитата (Dazze @ 22.03.2013 - 13:19) |
Додумался только как то дублировать диалоги для отправителя и получателя. |
Дублирование не лучший выход.
Я бы сделал флаг который принимает значения (1, 2, 3).
1 - показывать только отправителю
2 - показывать только получателю
3 - показывать обоим.
_____________
Безвозмездно помогаю только тем, кто сам пытается что-то сделать. Остальным за WMR
Даже если там 10 строк кода!
Даже если мне это ничего не стоит!
Даже если вы нуб!
Достаточно 2 таблицы, пользователи и сообщения
Пользователи понятно.
В таблице с сообщениями есть:
id сообщения
value
from - от кого
to - кому
допустим from_del - удалено у отправителя (0/1)
to_del - удалено у получателя (0/1)
time - когда отправлено
read - когда прочитано, если дата стоит то прочитано
А диалог это всего лишь переписка с каким то пользователем то есть "показать сообщения которые ты отправлял пользователю или он тебе"
_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Цитата (Arh @ 22.03.2013 - 16:10) |
Достаточно 2 таблицы, пользователи и сообщения Пользователи понятно.
|
Я думал над таким вариантом, сложность в запросах - нужно выводить кол - во сообщении в диалоге, есть ли новые сообщения в диалоге + диалоги должны сортироваться по дате. То есть не совсем понял как сделать в плане запросов , доставать всех пользователей с которым велся диалог, сортировать их считать кол - во сообщений ?
Цитата (TranceIT @ 22.03.2013 - 16:05) |
Дублирование не лучший выход. Я бы сделал флаг который принимает значения (1, 2, 3). 1 - показывать только отправителю 2 - показывать только получателю 3 - показывать обоим. |
Попробую пока что такой вариант
В любом случае спасибо за советы обоим