1

Тема: Свойство "активность" (публиковать) во вложенных множествах

Не смог придумать более внятного названия. Собственно, и погуглить по этой же причине не вышло. Прошу совета, наверняка кто-то сталкивался с такой задачей.

Суть вот в чем. Есть магазин. Структура каталога такая:
1) таблица категорий (Nested Set). Каждая категория имеет свойство "публиковать".
2) таблица товаров. Каждый товар имеет свойство "публиковать". Товар привязан к категории и к бренду.
3) таблица брендов. Тоже имеет свойство "Публиковать".

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

Вот думаю стоит ли добавить в каждую сущность свойство "активность родителя". И обновлять это свойство каскадно для всех связанных сущностей.

Что скажете?

2

Re: Свойство "активность" (публиковать) во вложенных множествах

Не совсем понимаю, каким образом связаны категории и товары. Обычно в магазине товар может присутствовать сразу в нескольких категориях. В любом случае - хранить в товаре "активность родителя" - не совсем логично.
Вот в таблицу категорий я бы добавил еще одно поле, в котором хранил бы конечный статус каждой категории, вычисляемый однократно в соответствии с наследственностью при изменении свойства "публиковать" в какой-либо категории. А вот остальное - хоть через view, хоть любым другим адекватным способом, но хранить в товаре публичность категории/бренда и потом апдейтить пачками - плохая идея.

3

Re: Свойство "активность" (публиковать) во вложенных множествах

Да, в моем магазине товар привязан только к одной категории. Но, гипотетически множественная привязка может появиться. Поэтому спасибо за мысль.
Пожалуй такое компромиссное решение это то, что мне надо.