在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/PHP/ PHP 連勝或連敗的的記錄怎么實(shí)現(xiàn)

PHP 連勝或連敗的的記錄怎么實(shí)現(xiàn)

應(yīng)用場(chǎng)情是這樣
需要記錄每天的連勝或連敗記錄。每當(dāng)勝或敗中斷需重新清零重新計(jì)算

用的是MYSQL但是不知道怎么設(shè)計(jì)表段了。求助一下

回答
編輯回答
懶豬

單獨(dú)建表最好,比如叫winscount, 字段:id, userid, wins, time
根據(jù)這局勝利與否,查找之前的winscount記錄, wins小于0是連敗,大于0連勝。
勝利后最新一條winscount記錄wins大于0就說(shuō)明連勝,就wins+1,
失敗后最新一條winscount記錄wins大于0,則說(shuō)明連勝中斷,就創(chuàng)建一條wins為-1的新紀(jì)錄。
失敗后如果最新一條winscount記錄wins小于0,就直接wins-1,如果大于0,說(shuō)明連敗中斷,創(chuàng)建新winscount紀(jì)錄wins=1

wins你可以拆分為兩個(gè)字段都行,一個(gè)數(shù)字,一個(gè)表示勝敗。
這就是個(gè)思路,可以參考,細(xì)節(jié)可以優(yōu)化完善。這樣設(shè)計(jì)還有個(gè)好處是,可以追溯歷史記錄,比如年度最高連勝,季度最高連勝什么的...
題外話,連勝我覺(jué)得不應(yīng)該按天限制。

2017年4月14日 16:59
編輯回答
萌面人

可以用一個(gè)字段去記錄連勝場(chǎng)數(shù),一個(gè)字段去記錄勝利/失敗時(shí)間,然后程序首先判斷如果已過(guò)了一天,則連勝場(chǎng)數(shù)置為0,再判斷如果勝利則連勝場(chǎng)數(shù)+1,失敗則清0;再加一個(gè)表存勝利或者失敗記錄即可。

2018年8月24日 18:31
編輯回答
懷中人

嘗試下redis?
K(uid→標(biāo)識(shí)用戶)+V(bool→標(biāo)識(shí)勝負(fù))存儲(chǔ)記錄;
每次產(chǎn)生結(jié)果時(shí)除了更新mysql中的場(chǎng)次數(shù)據(jù),redis中的值喜加一,勝場(chǎng)時(shí)負(fù)歸零,負(fù)場(chǎng)反之;
然后每天結(jié)束的時(shí)候做數(shù)據(jù)持久化~

2017年9月13日 12:01
編輯回答
落殤

應(yīng)該有個(gè)用戶表 用戶挑戰(zhàn)(或比賽)事件記錄表 再是 記錄連勝的記錄表 具體字段自己思考

2017年7月7日 06:40
編輯回答
久礙你

這個(gè)和每天簽到是一個(gè)業(yè)務(wù)邏輯
1)一個(gè)用戶id
2)一個(gè)連勝或者連敗的次數(shù)
3)一個(gè)最新的狀態(tài)(勝或者?。?br>4)時(shí)間
問(wèn)題解決

2018年2月16日 17:30