我试图在谷歌上找到这个,但它没有任何结果。
我正在寻找的是:
我有一个涉及很多相同操作的网络应用。
我想限制用户每12小时最多执行25次操作,以避免机器人。
不确定是否与问题相关,但我会提供付款选项以删除这些限制。
由于无法依赖cookie我正在寻找MySQL解决方案。
如果你有困难理解我想要的东西,就像Candy Crush一样。
提前致谢。
答案 0 :(得分:0)
由于用户已通过身份验证,因此您只需创建一个" users_actions_limit"存储关系和该关系限制的表。然后,只需将每个操作记录到带有时间戳的操作记录表中。在允许操作之前检查。
您可能希望对其进行缓存,以便在用户达到限制时限制后不再继续访问数据库。
答案 1 :(得分:0)
我认为这会奏效:
CREATE TABLE user_actions WITH
id,
user.id,
action.id,
action_time
然后
SELECT action_time FROM user_actions WHERE user.id = $user_id ORDER BY id DESC LIMIT 1 OFFSET 25
然后我必须检查结果action_time是否小于12小时。
当我回到家时,我会检查它是否是理想的结果。