Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Запрос на выборку сообщений в беседе чата
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » Запрос на выборку сообщений в беседе чата

Страниц (1): [1]
 

1. tjomamokrenko - 05 Октября, 2014 - 14:38:07 - перейти к сообщению
Есть пользователь. Он может участвовать в диалогах (1:1) и беседах (1:n).

Согласно первой нормальной форме было решено для каждого отдельного получателя/отправителя создавать отдельную запись в таблице addressees (англ. – получатели).

См. EER модель в приложении к теме. Допустим, Петя хочет отправить сообщение Васе и Диме. Их ID, соответственно, 1, 2 и 3.
Сначала добавляется запись в таблицу messages, содержащая текст сообщения и дату отправки. Затем в таблицу addressees добавляется 2 записи: каждая запись содержит message_id, полученный ранее, addressee_user_id (id получателя: 2 для первой записи – Вася и 3 для второй (порядок не принципиален) – Дима) и addresser_user_id (id отправителя в обоих записях будет 1 – Петя).

Вопрос: как в итоге вывести сообщения (получить список идентефикаторов), в которых участвует пользователь с определённым user_id, если id остальных участников беседы заданы в виде PHP массива?

У меня есть решение этой задачи, но оно, как мне кажется, нерациональное.
Помогите, очень надо. Буду признателен.
2. Sail - 06 Октября, 2014 - 09:17:30 - перейти к сообщению
tjomamokrenko, гляньте сообщение в соседней теме

 

Powered by ExBB FM 1.0 RC1