我有一个允许用户输入优惠券的系统(例如像戴尔或亚马逊)
我想知道优惠券已经使用了多少次,所以超过500次后优惠券就不再有效了。
我现在的想法是将优惠券插入到表中,然后是select count(*)
,如果它达到50,那么我不插入,并返回一条消息说它已过期。
我认为这个解决方案是有效的,但我想验证并检查是否有更好的方法。
我假设您有优惠券存储在某个表中,其中包含代码、描述等。为其添加num_used列,并在每次使用优惠券时增加它。这样,如果需要的话,您仍然可以将优惠券插入订单中,但您不需要进行计数。当你加载优惠券信息时,你只需检查它已经使用了多少次。我猜你是通过优惠券代码来检查有效性的,所以再加一个。
您可以将优惠券代码"附加"到一个订单上。
示例(适用于mysql订单表):订购ABC使用优惠券"Coupon1"订购BCD使用优惠券"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次)。