php - mysql 查詢一個使用者連續簽到天數
过去多啦不再A梦
过去多啦不再A梦 2017-05-16 13:07:47
0
3
1090

我有個平台是有簽到功能的,我需要判斷這個用戶連續在這個平台上簽到多少天了 給他不同的積分。
例如今天是4月26號,從4月15號開始每天都簽到了,那就是連續簽到12天,4月13號也簽到了,但是4月14號沒簽到,
mysql語句怎麼寫呢

过去多啦不再A梦
过去多啦不再A梦

全部回覆(3)
洪涛

一般都會存儲一下連續簽到的天數的,如果沒有存儲,我們以前做過的一個方式是我們簽到是採用時間戳存儲的然後獲取簽到的時間戳,一般我們都是獲取一個月的(如果這個月簽到滿了,就在取得一次前一個月的),然後在php 裡面循環一下天數計算出來的。後來這種方式比較慢,我們就單獨記錄簽到天數了

大家讲道理

資料庫設計問題.
因為要統計連續天數,不可能每天都記錄一條(想像一下銀行記錄用戶任意天數的餘額).
會計上的做法叫年積數的演算法.即記錄某個時間點至另一時間點餘額不變(連續)
表設計,大致如下:

結束時間-起始時間=天數.積分換算,就像稅金那樣,加成計算就行了.

大家讲道理

你的業務規則裡,應該有個連續 x 天的給多少分的上限,例如連續天>=20則給多少積分。

那我們記得這個 x,在db裡 select * from tb where uid = 10086 order by dt desc limit x

接著在程式裡判斷最多連續了多少天,加上對應的分數即可。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!