幾個月前我正在開發一個項目,並且需要實施獎勵系統。類似於S tackOverflow的徽章系統。 Badges跟蹤用戶習慣和活動? - Django
我可能沒有以最好的方式實現它,我很好奇你的說法。
什麼會跟蹤用戶活動的好辦法,需要徽章頒獎呢?
Stackoverflow的系統需要知道很多信息,而且我也會得到一個印象,那就是會有大量的數據處理使事情變得複雜。
我會假設SO每24年計算一次或兩次徽章,並且可能存儲日誌或專門用於徽章計算的服務器。
想法?
幾個月前我正在開發一個項目,並且需要實施獎勵系統。類似於S tackOverflow的徽章系統。 Badges跟蹤用戶習慣和活動? - Django
我可能沒有以最好的方式實現它,我很好奇你的說法。
什麼會跟蹤用戶活動的好辦法,需要徽章頒獎呢?
Stackoverflow的系統需要知道很多信息,而且我也會得到一個印象,那就是會有大量的數據處理使事情變得複雜。
我會假設SO每24年計算一次或兩次徽章,並且可能存儲日誌或專門用於徽章計算的服務器。
想法?
我不認爲你想象的那麼複雜。我非常懷疑SO是否會用某種用戶活動日誌計算徽章(儘管技術上整個數據庫都是用戶活動日誌)。當我查看徽章列表時,我看不到通過運行SQL select查詢無法實現的任何內容。
一些查詢可能相當複雜,並且可能存在某種奇特的緩存機制,但我沒有看到任何理由爲什麼您需要批量計算徽章。
一般而言,徽章/積分系統可以基於兩件事。有趣的事件的
活動日誌,這是有效的文件登記收據的什麼happend,這樣你可以重新計算從地上爬起來,如果它曾經需要。可以像(user_id,timestamp,event_id,event_detail)一樣簡單
大多數情況下,您已經預先設計了您的評分/積分系統,以便您確切知道要在用戶身上保留哪些計數器。現在就像擁有包含所有細節的大記錄一樣簡單。 (USER_ID,reply_points,login_points,LAST_LOGIN,thumbs_up_points,等等,等等。)
現在你可以拍這個模型對象上一些簡單的方法,並根據需要它管理/存儲點。
是的你對SQL查詢是正確的,我實際上正在考慮更多關於基於活動的徽章。例如計算一個人經常訪問某個頁面 – RadiantHex 2010-03-24 19:06:04
@RadiantHex,在這種情況下,你將不得不記錄頁面點擊。我建議不要根據頁面瀏覽量發佈徽章,這太容易操縱了。 – mikerobi 2010-03-24 19:46:57
非常感謝邁克:) – RadiantHex 2010-03-24 20:22:05