-
Есть модель товаров (букеты цветов). И есть составляющие (цветы). У каждого компонента есть стоимость, а букет может состоять из разного количества разных составляющих. Перемножая и складывая все это получаем конечную стоимость букета.
Хочется, чтобы можно было скопом поменять стоимость сразу нескольких компонентов. Пока пользуюсь editable в админке (При изменении каждой составляющей или товара, вызывается функция пересчитывающая цены связанных товаров), но уже сейчас ощущается, что это тупиковый вариант. При увеличении количества товаров и компонентов время вычисления новых цен соответственно тоже увеличивается.
Подскажите как лучше эту задачку решить.
Пока вижу варианты:- Вычислять цены лениво (Скорее всего произойдет при переходе на список товаров в той же админке)
- Дожидаться, пока сменятся цены на все составляющие и скопом пересчитывать цены цветов (Те же яйца, вид сбоку)
- Транзакции
- Другая классная идея
-
А по какому принципу меняется стоимость? Если есть какая-то логика, то можно сделать admin action.
-
Если полагать количество товаров и компонентов = бесконечность, то будут гораздо большие проблемы, чем имеющиеся.
А по существу, я за ленивое кеширование цен. В списке товаров цени отображаются постранично, а следовательно расчет будет распределен во времени.
-
А по какому принципу меняется стоимость? Если есть какая-то логика, то можно сделать admin action.Ну как: (стоимость цветка) * (количество таких цветов в букете) + ...
Например?Если полагать количество товаров и компонентов = бесконечность, то будут гораздо большие проблемы, чем имеющиеся.
Ага, у меня как раз на странице 1000 товаров =)А по существу, я за ленивое кеширование цен. В списке товаров цени отображаются постранично, а следовательно расчет будет распределен во времени.А по существу, я за ленивое кеширование цен. В списке товаров цени отображаются постранично, а следовательно расчет будет распределен во времени
А может сделать пересчет цен по кнопке? Поменяет человек что ему нужно и нажмет или запланирует пересчет на определенное время? -
Бесконечность с математической точки зрения, по крайней мере требует бесконечного числа ресурсов, и не только вычислительных. В подобных задачах обычно считают ограниченным алфавит, то есть цветков < букетов.
Если есть возможность запланировать пересчет, то почему его не осуществлять фоновой обработкой, например в течении суток.
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.


