1. truetug.ya.ru

    04.03.2010

    0 ↑
    0 ↓
    Есть модель товаров (букеты цветов). И есть составляющие (цветы). У каждого компонента есть стоимость, а букет может состоять из разного количества разных составляющих. Перемножая и складывая все это получаем конечную стоимость букета.

    Хочется, чтобы можно было скопом поменять стоимость сразу нескольких компонентов. Пока пользуюсь editable в админке (При изменении каждой составляющей или товара, вызывается функция пересчитывающая цены связанных товаров), но уже сейчас ощущается, что это тупиковый вариант. При увеличении количества товаров и компонентов время вычисления новых цен соответственно тоже увеличивается.

    Подскажите как лучше эту задачку решить.
    Пока вижу варианты:
    • Вычислять цены лениво (Скорее всего произойдет при переходе на список товаров в той же админке)
    • Дожидаться, пока сменятся цены на все составляющие и скопом пересчитывать цены цветов (Те же яйца, вид сбоку)
    • Транзакции
    • Другая классная идея
  2. igorekk

    04.03.2010

    0 ↑
    0 ↓
    А по какому принципу меняется стоимость? Если есть какая-то логика, то можно сделать admin action.
  3. Alexander

    04.03.2010

    0 ↑
    0 ↓

    Если полагать количество товаров и компонентов = бесконечность, то будут гораздо большие проблемы, чем имеющиеся.

    А по существу, я за ленивое кеширование цен. В списке товаров цени отображаются постранично, а следовательно расчет будет распределен во времени.

  4. truetug.ya.ru

    07.03.2010

    0 ↑
    0 ↓
    А по какому принципу меняется стоимость? Если есть какая-то логика, то можно сделать admin action.
    Ну как: (стоимость цветка) * (количество таких цветов в букете) + ...
    Если полагать количество товаров и компонентов = бесконечность, то будут гораздо большие проблемы, чем имеющиеся.
    Например?
    А по существу, я за ленивое кеширование цен. В списке товаров цени отображаются постранично, а следовательно расчет будет распределен во времени.А по существу, я за ленивое кеширование цен. В списке товаров цени отображаются постранично, а следовательно расчет будет распределен во времени
    Ага, у меня как раз на странице 1000 товаров =)

    А может сделать пересчет цен по кнопке? Поменяет человек что ему нужно и нажмет или запланирует пересчет на определенное время?
  5. Alexander

    09.03.2010

    0 ↑
    0 ↓

    Бесконечность с математической точки зрения, по крайней мере требует бесконечного числа ресурсов, и не только вычислительных. В подобных задачах обычно считают ограниченным алфавит, то есть цветков < букетов.

    Если есть возможность запланировать пересчет, то почему его не осуществлять фоновой обработкой, например в течении суток.

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.