Для проекта необходимо хранить все данные о цене заказа.
Данные могут включать в себя:
- Базовая цена товара - "Чистая" цена, без учета модификаторов/скидок
- Скидки клиента - Все скидки клиента действующие на момент создания заказа. Необходимо чтобы скидки "запоминилась" и не изменялись при обновлении скидок у клиента. (Т.е обновление скидок у клиента, не влияло на цену старых заказов, созданых до обновления)
- Доп. модфикиаторы цены - Тут может быть несколько дополнительных модификаторов, которые могут добаляться/убираться при необходимости
Не могу придумать ничего лучше, чем БД с 2 полями:
- base_price (decimal) - Базовая цена
- modifiers (text) - Сериализованный массив со всеми модификаторами
Очевидно что данная стуктура будет иметь кучу недостатков и создаст дополнительные проблемы в будующем.
Может кто-то создавал подобные таблицы, и может подсказать
КАК хранить такой набор данных для каждого заказа, чтобы это не вызвало проблем при смене логики формировании цены?