我有一个允许用户输入优惠券的系统(例如戴尔或亚马逊)
我想知道优惠券已经使用了多少,所以超过500次后优惠券就不再有效了。
我现在的想法是将优惠券插入到一个表中,然后select count(*),如果它达到50,那么我不插入,并返回一条消息,说它已过期。
我认为这个解决方案是有效的,但我想验证并检查是否有更好的方法来做到这一点。
发布于 2011-11-22 10:43:46
我假设你有一些优惠券存储在一些表中的代码,描述等,添加num_used列到它,并递增它每次使用优惠券。这样,如果需要的话,你仍然可以将优惠券插入到订单中,但你不需要做计数。当你加载优惠券信息时,你只需检查它已经被使用了多少次。我假设你无论如何都是通过优惠券代码来检查有效性的,所以多次抛出另一个。
发布于 2011-11-22 10:27:44
您可以将优惠券代码“附加”到一个订单上。
示例(为您提供mysql orders表):order ABC use coupon "Coupon1“order BCD use coupon "Coupon1”
然后,是的,你可以使用像这样的函数:
function getCouponUsage($a_couponCode){
$res = mysql_query("SELECT couponCode FROM orders WHERE coupon = '$a_couponCode'") or die(mysql_error());
return mysql_num_rows($res);
}此函数将返回一个整数。只需与你的极限进行比较。
您还可以设置命中计数器。假设优惠券可以使用500次,当有人使用优惠券时,你去掉一个优惠券,总共是499次(优惠券从现在开始可以使用499次)。
https://stackoverflow.com/questions/8221106
复制相似问题