В настоящее время работаю над созданием интернет-магазина на Laravel. Решаю задачу над созданием системы скидок на товары. В настоящее время, для хранения данных то цене товара таблице “products” с товаром базы данных созданы поля:
$table->decimal('base_price', 10, 2, true)->default(0);
$table->decimal('price', 10, 2, true)->default(0);
$table->string('currency')->default('RUB');
Запланировано создание для товаров трех типов скидок:
- Скидка на товары в процентах от базовой цены
- Фиксированная сумма скидки
- Установить цену на товар со скидки
Идей о способах реализации задачи много, но как это сделать боле рационально и оптимизировано, без лишних запросов к базе. Вынести в отдельную таблицу или создать новые поля в таблице?
Прошу совета у сообщества, как наиболее рационально организовать систему расчета скидок на сайте?