Подскажите, пожалуйста, с алгоритмом для групп атрибутов - как лучше реализовать такое (код не нужен, только алгоритм):
У товара есть группы атрибутов, а у группы есть атрибуты. Пользователь в товаре выбирает сначала группу, а потом из принадлежащих группе атрибутов выбирает атрибут. Надбавка цены зависит от группы, и не зависит от самого атрибута. В товаре есть несколько групп и несколько атрибутов без групп. Соответственно, комбинаций может быть очень много.
Например, товар - ковёр, два атрибута без групп - ширина (50, 60, 70, ..., 240, 250) и длина (50, 60, 70, ..., 240, 250), два групповые атрибуты нитка:
группа1 - материал:
шерсть +20$ (атрибуты - мохер, кашемир, меринос, альпака, ..., ангора ),
искусственная нить +0$ (атрибуты - акрил, полиамид, полиэстер, ..., полипропил),
растительные +0$ (атрибуты - вискоза, бамбук, лен, хлопок, джут, пенька, ..., сизаль)
шелк +1000$ (атрибуты - 1000, 1400, 2000)
группа2 - палитра:
осень +0$ (атрибуты - красный, тёплый, ..., винный)
зима +10$ (атрибуты - холодный, синий, ..., морозный)
лето +0$ (атрибуты - горячий, ..., цветастый)
Как лучше реализовать эту задачу? (версия 1.6)