megakor
@megakor
Go/PHP developer | Вконтакте

Как хранить цену на товар и скидку?

Представим ситуацию что на сайте при добавлении нового товара в админке можно указать цену товара и размер скидки в процентах или цену товара уже со скидкой.
Какой вариант бы вы предпочли для хранения в БД? С точки зрения правильности и уменьшения проблем в будущем (типа сортировки по стоимости товара).

Варианты:
1. price (1000)
price_discounted (900)

2. price (1000)
discount_percent (10)

3. price (1000)
discount_sum (100)
  • Вопрос задан
  • 539 просмотров
Решения вопроса 1
@anton99zel
29а класс средней школы №7
Ни один.
Хранить только базовую цену.
Для гибкого и эффективного управления скидками, промиками, персональными скидками нужна отдельная таблица, которая в будущем позволит создавать отдельные правила: суммирование скидок, накопительные скидки, скидки только корзины, скидки только в каталоге, или для конкретной группы клиентов с ограничением по датам, условиям доставки и прочее и прочее.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Табличка с данными о товаре, и отдельная табличка с полями со скидкой для товара с датами начала и конца скидки. На уровне логики нужно сделать валидатор при создании, на то, есть ли скидка на этот товар в создаваемом временном интервале, если есть - кидать 400, иначе создавать. Обновление если оно нужно, можно сделать по айди скидки. Удаление скидок лучше делать через soft delete
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы