Задавайте вопросы, мы ответим
Вы не зашли.
Суть задачи:
Сумма Скидка на Продукт должна определяться динамически и зависеть он набора определенных условий, а именно:
- Скидка зависит от "Способа Оплаты\покупки товара" (Оплата всей суммы сразу\оплата товара частями);
- Скидка зависит от "Остатков товара на складе" (Товара на складе может быть: Мало\Средне\Много);
- Скидка зависит от "Категории товара" (Компьютер\Телевизор\Телефон);
- Скидка зависит от "Производителя" (Apple\SamsumXaomi);
- Скидка зависит от "Пользователя" (Зарегестрированный\Гость)
и тд, таких зависимостей может быть порядка 10.
Если рассматривать самый простой упрощенный вариант, когда Скидка зависит только от, например, Производителя, то это связь 1 к 1:
- в одной таблице DISCOUNT записывам сумму скидки и MANUFACTURER_ID и вторая таблица MANUFACTURER со списком всех производителей
- или даже все делаем в одной таблицес двумя столбцами DISCOUNT_AMOUNT и MANUFACTURER_NAME, где MANUFACTURER_NAME ничто иное как ENUM.
Сложнее становиться когда Сумма Скидки начинает зависеть от группы параметров, рассмотрим вариант, когда Скидка будет зависеть от Производителя и Остатков товара на складе, все так же мы можем обойтись одной таблице но уже с полями:
DISCOUNT (1%, 2%..),
MANUFACTURER (Apple, Sony, Samsung) и
STOCK_BALANCE (LOW, MIDDLE, HUGE)
а если вспомнить, что таких критериев может быть около 10, то в таблице будет 11 столбцов, вроде ничего страшного, но вот количество записей и количество комблинаций может быть достаточно большим, например:
Для зарегистрированного пользователя, который хочет купить Телефон Samsung, которых на складе Много и готов сделать полную оплату предоставить скидку X%.
и тд.
Мой вопрос: как правильно архитектурно построить таблицу (ы) для решения данной задачи?
Какие best practice используются?
Не прошу решить за меня, а просто подтолкните в правильном направлении.
Спасибо.
Неактивен
FJ написал:
Для зарегистрированного пользователя, который хочет купить Телефон Samsung, которых на складе Много и готов сделать полную оплату предоставить скидку X%.
Если есть формула, по которой можно рассчитать Х%, то можно хранить в виде (величина скидки, параметр, значение):
(1%, категории товара, телефон)
(2%, остаток товара, много)
и т.д.
в противном случае, имхо, только много столбцов.
Неактивен