日期:2014-05-16  浏览次数:20722 次

积分数据库设计求教
设计积分数据库的时候,就是用简单的update point = point + 5 这样的方式来实现积分的累计。
然后发现这样方式是可以被刷分的,我用的是php,每次从log表中查找这次update是否有加过,如果没执行过的话,就执行update,同时在log表插入执行过的记录。
然后发现,如果用发包的工具或者两台电脑,同一时间访问这个网页,一开始的log表查询都判断为真,因为还没有插入记录。便都执行update去了。。于是。。同一时间便执行了2次update。
后来我用每次都sum一下log中的数值来补的漏洞。。。现在log量大了,每次sum都效率很低,求教用什么方法可以防止这样的刷分。

------解决方案--------------------
这个应该可以通过锁表(LOCK TABLES)的方式来做
------解决方案--------------------
增加一个字段 added 如果为0可以加,为1者是加过了
------解决方案--------------------
数据库的重构来实现的。