假設想記錄使用者一個月內的積分曆史,MySQL建表該怎麼建呢

來源:互聯網
上載者:User
關鍵字 mysql php
如題,比如說我需要一個使用者積分總榜,月榜,周榜
我覺得我就需要記錄下使用者30天內的積分變化..
但是建表該怎麼去建,來記錄這個變化

上面是原題

非常,非常感謝各位的答案.
我重新梳理下我的需求,這是一個遊戲勝負增加積分的系統,無負分機制(負方得0分)
然後需要在首頁展示總/月/周 ,積分獲得者最高的前10名

我一開始提這個問題,是因為我拿不準是否要建一個詳細的積分變化表,因為後面的操作讓我覺得略微有點繁瑣
就如各位所說,首先假設我建一張表叫"積分變化明細表"

流水號 / 使用者id / 積分變化/理由 / 時間

這樣做的話,我要統計出總/月/周 前10,就需要每天去執行一次更新操作:
如果按照這種方式去做,我是這樣想的:
1,遍曆該表,將本月(周)內登入有積分變動的使用者id拿出來,組成一個列表
2,開始以上一步的使用者列表為基礎開始迴圈,在"積分變化明細表"內,用今天的積分減去本月初(和周一)的積分,得到該使用者在此時間段內的積分增加值,儲存到一個暫存資料表內,如:

使用者id / 周增加 / 月增加

3,將上一步產生的暫存資料表,按周增加欄位排序,取前10,再按月增加排序,取前10.
得到我想要的結果.

因為我對MySQL的瞭解僅僅限於增刪改查的水平,覺得上面這種方式有點小繁瑣
所以想提問瞭解一下是否有更加方便的方式來實現這個需求

回複內容:

如題,比如說我需要一個使用者積分總榜,月榜,周榜
我覺得我就需要記錄下使用者30天內的積分變化..
但是建表該怎麼去建,來記錄這個變化

上面是原題

非常,非常感謝各位的答案.
我重新梳理下我的需求,這是一個遊戲勝負增加積分的系統,無負分機制(負方得0分)
然後需要在首頁展示總/月/周 ,積分獲得者最高的前10名

我一開始提這個問題,是因為我拿不準是否要建一個詳細的積分變化表,因為後面的操作讓我覺得略微有點繁瑣
就如各位所說,首先假設我建一張表叫"積分變化明細表"

流水號 / 使用者id / 積分變化/理由 / 時間

這樣做的話,我要統計出總/月/周 前10,就需要每天去執行一次更新操作:
如果按照這種方式去做,我是這樣想的:
1,遍曆該表,將本月(周)內登入有積分變動的使用者id拿出來,組成一個列表
2,開始以上一步的使用者列表為基礎開始迴圈,在"積分變化明細表"內,用今天的積分減去本月初(和周一)的積分,得到該使用者在此時間段內的積分增加值,儲存到一個暫存資料表內,如:

使用者id / 周增加 / 月增加

3,將上一步產生的暫存資料表,按周增加欄位排序,取前10,再按月增加排序,取前10.
得到我想要的結果.

因為我對MySQL的瞭解僅僅限於增刪改查的水平,覺得上面這種方式有點小繁瑣
所以想提問瞭解一下是否有更加方便的方式來實現這個需求

這個需求需要多張表來實現。

簡單梳理一下需求:
1.系統有多個使用者。不知道你的行業,使用者以中等規模看(50-500萬,通常在連鎖、零售業會有,如果是互連網行業可能更多;也可能是遊戲等)
2.每一使用者根據其行為獲得積分(可能是註冊、簽到、購物、儲值、推薦。。。等)
3.積分可以在某些情境下消費(減少積分)
4.使用者需要查看其即時的當前積分餘額以及積分變化記錄(類似銀行賬戶)
5.平台需要有積分榜(總積分榜、月積分榜、周積分榜),可能是餘額榜,也可能是積分獲得榜。

那麼,通常需要這幾張表:
1.積分異動明細表。記錄積分的變化情況(增、減)、發生時間、來源、來源描述、使用者等。
2.積分統計表。以月、周為單位的積分統計。需要記錄周期、使用者、積分增加、積分消費、積分餘額。看業務需要也許還要增加上期餘額。這個表不是一張,推薦周是周統計表,月是月統計表。周、月統計均通過批次作業每周期後執行。如果統計過後,異動明細有調整(如,某渠道的積分沒有及時獲得、或是積分記錄出錯需要更改),則發生日期後的周、月統計可能要重新計算。當然,也可以調整在當期(這個參考財務概念)

最後,列出來表結構吧:
1.積分異動明細表(使用者號、業務序號流水、發生時間、來源(各業務)、來源描述(各業務詳細說明,如單號)、變化方向(增、減)、積分、備忘)
2.周積分統計表(使用者號、周序號(可以是4位年+2位周)、上期餘額、本期增加積分、本期消費積分、本期積分餘額)
3.月積分統計表(使用者號、月序號(4位年+2位月)、上期餘額、本期增加積分、本期消費積分、本期積分餘額)

以上,請參考。

時間 使用者id 積分變化

使用者ID,原積分,積分類型(如幹了什麼),積分變化(+n或-n),現積分,發生時間

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.