首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

JavaWeb 論壇用戶等級成長值設計:加權指標與等級劃分

     編輯:程式設計疑難解答

需求背景

自建類論壇網站,需設計用戶等級/成長值體系。新註冊用戶無幣,需免費方案。

核心思路:多維度加權計算

選取關鍵行為指標,賦予權重,累積得分,劃分等級區間。

指標權重示例備註
登錄天數1 分/天連續登錄可加成
發帖數5 分/帖精華帖額外加分
回帖數2 分/回限制灌水:同主題每天最多計 5 回
在線時長0.1 分/分鐘需心跳檢測防掛機
獲贊/被采納10 分/次優質內容激勵

等級劃分示例

Lv.1  0 - 99
Lv.2  100 - 499
Lv.3  500 - 1999
Lv.4  2000 - 4999
Lv.5  5000+

實現要點

  • 異步計算:用戶行為寫入事件表/消息隊列,定時任務(如每小時)批量更新成長值,避免高併發鎖表。
  • 緩存等級:Redis 存 user:{id}:level,頁面讀取無需查庫。
  • 防刷機制:同 IP/設備頻率限制、內容相似度檢測、人工審核入口。
  • 擴展性:權重、閾值存配置表,運營可動態調整,無需改代碼。

數據表設計參考

CREATE TABLE user_growth (
    user_id BIGINT PRIMARY KEY,
    total_score INT DEFAULT 0,
    level INT DEFAULT 1,
    last_calc_time DATETIME
);

CREATE TABLE growth_event (
    id BIGINT AUTO_INCREMENT PRIMARY KEY,
    user_id BIGINT,
    event_type VARCHAR(20),  -- LOGIN, POST, REPLY, ONLINE, LIKE
    score_delta INT,
    create_time DATETIME
);
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved