Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Каталог товаров

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
lamer6666
Отправлено: 26 Марта, 2015 - 10:12:52
Post Id


Новичок


Покинул форум
Сообщений всего: 39
Дата рег-ции: Февр. 2010  


Помог: 0 раз(а)




Добрый день.
Стоит задача создания каталога товаров следующего рода:
1. Есть группы товаров
2. У каждой группы товаров есть свои свойства (Вес, Ширина, Высота, Глубина)
3. При добавлении подгруппы в какую нибудь группу товаров, подгруппа должна получать все свойства группы родителя, а также иметь возможность иметь свои новые свойства.
(Пример: В группу "ТОВАРЫ" добавили группу "Автомобили", автомобили получают свойства своего родителя "Товары": Вес, Ширина, Высота, Глубина + Марка + Грузоподъемность и т.д.)
4. Любой ТОВАР отнесенный к той или иной группы должен наследовать(иметь) свойства группы родителя.

1. Как реализовать данный подход?
2. Как хранить/читать в SQL свойства групп товаров, и при выборе какого нибудь конкретного ТОВАРА получить все его свойства.
 
 Top
caballero
Отправлено: 26 Марта, 2015 - 11:52:03
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




я в своей CMS так делал с наследованием. Тут надо удобный механизм работы с иерархией например выборка всех родительских груп.
тогда наследование реализуется просто выборкой иерархи груп для товара. а к каждой групе прикноплены свойства. вот оно все в кучу и собирается. собственно наследования как такового и не надо в нем нет смысла - просто с каждой родительской группы собираются перечень свойст в список и показывается на редактировании товара для присвоения значений. то есть список свойст зависит от родительских груп - вот и получается наследование


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
tuareg
Отправлено: 26 Марта, 2015 - 13:55:40
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




caballero пишет:
то есть список свойст зависит от родительских груп - вот и получается наследование
Я так понимаю, что при удалении сво-ва у родителя идем вниз и удаляем это сво-во?
 
 Top
caballero
Отправлено: 26 Марта, 2015 - 15:02:08
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




никуда не идем
просто удаляем, оно потом просто не появляется

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


наследование свойства это не переприсвоение свойства нижестоящим категориям.

просто товары привязаные к этой и нижестоящим категориям будут иметь это свойство


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
lamer6666
Отправлено: 26 Марта, 2015 - 16:10:00
Post Id


Новичок


Покинул форум
Сообщений всего: 39
Дата рег-ции: Февр. 2010  


Помог: 0 раз(а)




[quote=caballero][/quote]
меня смущает в данном решении рекурсивность! Для каждого ТОВАРА рекурсивно выполнять запросы родителей, это сильная нагрузка SQL сервер. А если глубина достигает 10 000, при этом запрашиваем 1000 товаров одним запросом?
 
 Top
LIME
Отправлено: 26 Марта, 2015 - 16:21:40
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Иерархия не обязательно рекурсивность
Погугли nested sets
materialized path

а еще можно сделать наборы свойств
все товары включают базовый набор
наборы можно присваивать не только категориям но и отдельным товарам
(Добавление)
А даже если рекурсия... в каком это магазине такая тьма категорий?
 
 Top
lamer6666
Отправлено: 26 Марта, 2015 - 18:10:37
Post Id


Новичок


Покинул форум
Сообщений всего: 39
Дата рег-ции: Февр. 2010  


Помог: 0 раз(а)




LIME пишет:
а еще можно сделать наборы свойств
все товары включают базовый набор
наборы можно присваивать не только категориям но и отдельным товарам


Пример можете привести для наглядности?
 
 Top
LIME
Отправлено: 26 Марта, 2015 - 18:22:12
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




базовый набор: цвет, производитель, SKU ...

набор транспорт: мощность, скорость...
набор кабриолеты: метод съема крыши(вручную/с пинка/с пульта), ...

товары:
Камаз - базовый, транспорт
Maserati GranCabrio - базовый, транспорт, кабриолеты
летняя креативная беседка для курения и пьянства в виде кабриолета - базовый, кабриолеты
 
 Top
caballero
Отправлено: 26 Марта, 2015 - 23:32:54
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
меня смущает в данном решении рекурсивность! Для каждого ТОВАРА рекурсивно выполнять запросы родителей, это сильная нагрузка SQL сервер. А если глубина достигает 10 000, при этом запрашиваем 1000 товаров одним запросом?


нет рекурсивности - использую materialized path

и такие запросы с категориями на практике не понадобятся - на фига выбирать 1000 товаров со всей иерархией
тем более не бывает такой глубины.

если понадобится поиск по свойствам то тут иерархия не нужна - просто будешь искать значения свойств
по мере присвоения значений свойствам свойства уже привяжутся к товару и не надо будет смотреть на иерархию.


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Объектно-ориентированное программирование »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB