Есть пользователь. Он может участвовать в диалогах (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 массива?
У меня есть решение этой задачи, но оно, как мне кажется, нерациональное.
Помогите, очень надо. Буду признателен. Прикреплено изображение (Нажмите для увеличения)(Отредактировано автором: 05 Октября, 2014 - 19:34:59)
|