我的问题是:我如何限制用户每周执行有限的操作次数?
我的情况如下:
我有我的产品,如果产品不好,我为每个用户提供了一个要求退款的选项。问题是许多用户滥用此操作,并且检查每个产品和每个要求退款的用户都很耗时,因此我想限制每个用户每周只能要求退款 3 次,但我不知道如何。
我有一个名为 refunds_count 的表,如下所示
ID || userid || product_id || date
----------------------------------
1 || 7 || 9 || 2016-03-9 12:33:22
2 || 7 || 10 || 2016-03-13 14:40:10
3 || 7 || 11 || 2016-03-13 16:42:15
所以ID 为 7 的用户本周已经有两次退款请求,我不知道如何比较这些数据以查看用户本周是否已经提出了 3 次退款请求
SELECT userid
FROM refunds_count t
WHERE week(now()) = week(t.date)
GROUP BY userid
HAVING COUNT(*) >= 3
这将提供本周已经进行了 3 次退款的所有用户的列表。
您可以最后在退款系统中过滤这些用户,例如
WHERE userid NOT IN(...the query here...)