Задать вопрос

Сложная структура бд и yii2?

Совсем запутался, требуется пинок в нужном направлении. БД изменить и упростить возможности нет.

Суть:
4 таблицы в бд:

object: id | name | number
inbox : id | number | sms
user: id | name
objects_user: id_object | id_user

object.number = inbox.number
object.id = objects_user.id_object
user.id = objects_user.id_user


Нужно вывести значения таблиц inbox и object (object.name | inbox.sms) доступных определенному пользователю из таблицы user. Права на просмотр задаются в таблице objects_user.

Как связать любые 2 таблицы из 4, я понимаю, но как увязать все это вместе, не как сообразить не могу. Пните пожалуйста. Спасибо.
  • Вопрос задан
  • 232 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
Как вариант:
1. Собрать id объектов с текущим user_id из objects_user
2. Получить объекты. WHERE IN(1,2,3)
3. Получить данные из inbox и, допустим, собрать в массив number => [inbox, inbox...]
4. Вывести.
Может есть варианты по лучше, но я бы сделал так.
Ответ написан
Комментировать
vyachin
@vyachin
Ищу работу
Можно решить одним sql запросом (последний join можно не делать, если данные из таблицы user в выборке не нужны)
select object.name, inbox.sms from object 
inner join inbox on inbox.number = object.number 
inner join objects_user on objects_user.id_object = object.id
inner join user on user.id = objects_user.id_user
where user.id = :id_user
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы