Не Могу Понять Как Реализовать Построение Данных По Связанным Таблицам

Конкретно пришел не за реализацией в явном виде, а за советом опытных разработчиков. Есть вот такая структура таблиц для товара

www.zimagez.com/full/a5e716e4088b2f4a329a618ec91320d4df78ecef8e4ccda66c93d4a5e8ef1bcca5ff0d92e8139c664bda7d8528202f3b.php

Вопросы заключаются в следующем:

  1. Как лучше всего отображать подобного рода данные со многих таблиц, точнее, подходит ли для этого тот же CGridView или лучше использовать другой виджет

  2. Как лучше всего реализовать пагинацию и фильтры, когда на главной странице (до редактирования), необходимо выводить информацию (различные поля) сразу с нескольких таблиц.

  3. Если возможно, в нескольких словах можете описать общую схему поведения для конкретно моего случая и как лучше его реализовать, чтобы в дальнейшем времени тратить минимально на изменение/добавление полей

  4. Как вы вообще реализуете подобные конструкции на Yii

  5. Разумно ли использовать для построения вывода к примеру в том же Grid CSqlDataProvider

На мой сегодняшний уровень, кроме как разделять все операции по отдельности по каждой модели (по очереди сохранять, предварительно провалидировав каждый экземпляр), ничего придумать не могу, но если это прокатит на редактировании/удаление, то при выводе списком всех товаров с возможностью сортировки - я ума не приложу как реализовать.

Заранее спасибо за советы или конкретные примеры Ваших реализаций подобных множественных связей

Для начала, небольшое уточнение.

Вы сказали, что все связи, кроме первой - MANY_MANY, но на приведенной диаграмме у Вас BELONGS_TO.

Чему верить?

А да, я оговорился, я имел ввиду, что у товара может быть много фотографий, у каждой фотографии может быть много описаний, цветовых схем и размеров