2013-08-28 5 views
0

Привет всем Я реализую опцию проверки кода купона на своем веб-сайте электронной торговли. У меня есть два типа купонов: либо сумма, либо процент. Как справиться с обоими из них в бэкэнде. Я имею в виду схему базы данных.Проверка купона на сайте электронной торговли

+0

Предположим, вы получили таблицу «купонов». Наряду с другими полями (ключи, описания и т. Д.) Добавьте 'coupon_type' как' ENUM ('percent', 'amount') 'и' coupon_value' как 'decimal (12,2)' (или короче). В 'coupon_value' удерживать литеральное значение (0.XX для XX%), а позже в коде просто добавить или несколько - зависит от' coupon_type'. –

+0

Для ответов, которые были опубликованы - ** никогда ** держите цены как плавающие - это точные значения и их сохранение в качестве поплавков приведет к возникновению проблем позже. –

ответ

0
CouponTypeTBL 
id type 
1 flat 
2 percent 

CouponTBL 
id typeid uniquecode amount validfromdate validtodate useddate status etc... 
1 1  a1-xx  100.00 .... 
2 2  cvd11  7.5  ... 

Так у вас здесь есть купон:

a1-хх, который представляет собой плоский размер 100

и

cvd11, который дает скидку 7,5%.

Вы можете сделать эту модель более сложной, в какой валюте, если квартира будет ли сумма влево, если используется при фиксированной суммы и т.д .. и т.д ..

0

Я хотел бы использовать таблицу, которая имеет

КОД, ставка купона ПРОЦЕНТОВ, СУММА, USABLE_COUNT

таким образом, вы можете иметь cupons, которые делают оба (если кто-то захочет этого).

USABLE_COUNT для купонов, которые могут использоваться только определенное количество раз.

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

0

процент = целое число (1%, 10%, 100% и т.д.) или дважды/поплавок (1.11% 10,1%, 99,999% и т.д.)

фиксированная сумма = целое число (1 , 10, 100 и т.д.) или двойной/поплавок (1,11, 10,1, 99,999 и т.д.)

Сохранить его в бэкэнда как целое или как двойной/флоат/десятичном ...

0
CREATE TABLE IF NOT EXISTS `coupon` (
    `code` varchar(20) NOT NULL, 
    `type` varchar(10) NOT NULL, 
    `amount` float NOT NULL, 
    UNIQUE KEY `code` (`code`) 
); 

Легкий пример ...

0

положить как количество, так и проценты в качестве гнусных столбцов. в противном случае, если поставить как процент, так и сумму в одиночной колонке, указав столбец дискриминатора, который будет проблемой, если вы хотите предоставить домен либо на уровне процентов, например: более 100% не разрешено в качестве скидки или мин. 10 рс. как скидка.

Смежные вопросы