如何判断一段时间内某个账号的写入次数。。如何自动锁定和解锁。
比如我一个如下数据库,有表table1和table2
其中table1的结构如下:
table1记录了投票用户的投票时间time_sj,投票选择的那些企业vote,投票的类别。
time_sj vote class
2011-12-08 17:01:00 1|2|4 1
2011-12-08 17:02:00 2|4 2
2011-12-08 17:11:00 3|4|5 1
2011-12-08 17:11:00 3 1
2011-12-08 17:11:00 2|3|4|5 2
2011-12-08 17:14:00 1|5 1
2011-12-08 17:17:00 2|3 1
2011-12-08 17:19:00 1|4 1
其中class代表不同的用户。vote里面的 1|2|4 表示用户选择了这几个投票选项。
难点,如何判断class=1,且投票选项编号为2的单位时间的投票次数。
因为每个投票企业编号用|隔开的,用素组如何识别。并且这个这个是活动的,有可能是2|3|4|5,有可能是1|2, 有可能是1,但是最多不超过4个。。。这个是自定义的。。。
table2
table2记录了用户名称qy_gr_name、投票的类别class,和是否锁定状态shuo(0为没有锁定,1为锁定状态。),锁定时间ssj。
qy_gr_name class shuo ssj
qy1 1 0 锁定时间
qy2 1 0 锁定时间
qy3 1 0 锁定时间
qy4 1 0 锁定时间
qy5 1 0 锁定时间
gr1 2 0 锁定时间
gr2 2 0 锁定时间
gr3 2 0 锁定时间
gr4 2 0 锁定时间
gr5 2 0 锁定时间
gr6 2 0 锁定时间
其中class代表不同的投票,比如我现在运行了两个投票程序,一个是评选企业的,一个是评选个人的,class=1就代表是评选企业,class=2就是评选个人的。
比如第一条记录,就是说某网友在2011-12-08 17:01:00时间选择了1|2|4 同时class=1,即为企业评选里面的编号为1|2|4 的企业投票。。
如何判断出在5分钟内,某个用户投票了多少次。
比如判断class=2的个人投票在5分钟内投票了多少次,怎么写sql?
如果在5分钟内的投票超过30次,则把shuo这个字段对应的0变成1。
然后在45分钟内,自动把变成1的转变成0;
接着,如果在五分钟内投票超过了30次,则把0转换成1.
如此自动循环下去。
这么做的目的监视刷票的,如果他五分钟刷票三十次,就自动锁定。。。
我就是想实现的目的,一个用户如果在5分钟内登陆了3次,则吧这个账号锁定45分钟。45分钟后自动解锁。。
------解决方案--------------------
投票Table1應該是一個時間範圍吧?
只1個時間,怎樣判斷是否在有效時間內投票
------解决方案--------------------
可用存儲過程處理,發現有一段時間內重復投票鎖定等處理
或用觸發器