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

Как сделать связь между тремя таблицами в БД (товары, категории и доп. поля)?

В общем, есть простой сайт на Yii 1.1, на нем есть каталог товаров. Товары разделяются на категории (отношение many-to-one). Нужно сделать так, чтобы к каждой категории можно было добавлять (и, разумеется, выводить во view конкретного товара) дополнительные поля (скажем, если это категория "Обои" - можно добавить поля "цвет", "фактура", "метраж" и т.д.), но при этом, очевидно, нужно, чтобы их значения заполнялись для каждого товара отдельно.

Диаграмма БД:
f8efc3ad369f4bb39e85a1bb034126fb.png

Отношения в моделях Yii:

Модель Item:
return array(
    'category' => array(self::BELONGS_TO, 'ItemCategory', 'category_id'),
    'fields' => array(self::MANY_MANY, 'ItemField', 'items_fields_values(item_id, field_id)'),
);


Модель ItemField:
return array(
    'itemCategory' => array(self::BELONGS_TO, 'ItemCategory', 'item_category_id'),
    'items' => array(self::MANY_MANY, 'Item', 'items_fields_values(field_id, item_id)'),
);


Модель ItemCategory:
return array(
    'items' => array(self::HAS_MANY, 'Item', 'category_id'),
    'itemsFields' => array(self::HAS_MANY, 'ItemField', 'item_category_id'),
);


Чувствую, что делаю что-то не так, уже полдня туплю, не могу понять, что именно.
  • Вопрос задан
  • 2861 просмотр
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
65536
@65536
я так делал gyazo.com/5124c0f4dacc9b85c84b7f04eb79e368

товары принадлежат категориям, свойства тоже (у каждой категории свой набор свойств), значения свойств живут в связующей таблице между свойствами и товарами.
Ответ написан
Ваш ответ на вопрос

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

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