应用场情是这样
需要记录每天的连胜或连败记录。每当胜或败中断需重新清零重新计算
用的是MYSQL但是不知道怎么设计表段了。求助一下
可以用一个字段去记录连胜场数,一个字段去记录胜利/失败时间,然后程序首先判断如果已过了一天,则连胜场数置为0,再判断如果胜利则连胜场数+1,失败则清0;再加一个表存胜利或者失败记录即可。
尝试下redis?
K(uid→标识用户)+V(bool→标识胜负)存储记录;
每次产生结果时除了更新mysql中的场次数据,redis中的值喜加一,胜场时负归零,负场反之;
然后每天结束的时候做数据持久化~
4 回答968 阅读
1 回答643 阅读✓ 已解决
2 回答617 阅读
603 阅读
单独建表最好,比如叫winscount, 字段:id, userid, wins, time
根据这局胜利与否,查找之前的winscount记录, wins小于0是连败,大于0连胜。
胜利后最新一条winscount记录wins大于0就说明连胜,就wins+1,
失败后最新一条winscount记录wins大于0,则说明连胜中断,就创建一条wins为-1的新纪录。
失败后如果最新一条winscount记录wins小于0,就直接wins-1,如果大于0,说明连败中断,创建新winscount纪录wins=1
wins你可以拆分为两个字段都行,一个数字,一个表示胜败。
这就是个思路,可以参考,细节可以优化完善。这样设计还有个好处是,可以追溯历史记录,比如年度最高连胜,季度最高连胜什么的...
题外话,连胜我觉得不应该按天限制。