每周限制一个动作的使用次数

Limiting number of uses an action has every week

我的问题是:如何限制用户每周执行某项操作的次数有限?

我的情况如下:

我有我的产品,如果产品不好,我会为每个用户提供一个要求退款的选项。问题是许多用户滥用此操作并且我需要花费时间来检查每个产品和每个要求退款的用户所以我想限制每个用户每周只能申请 3 次退款但我不不知道怎么办。

我有一个名为 refunds_count 的 table,看起来像这样

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...)