我想添加一個非常簡單的點系統到一個網站。在我的SQL數據庫中,有一張用於獎勵積分的表格,因爲管理員可以增加用戶的積分數量以及積分增加的基本原理。所以,簡化一點,這個表格包含了每次管理員獎勵積分的獎勵數量,理由和用戶ID。到現在爲止還挺好。點系統的高效數據庫模型?
但是,網站上有10個用戶組競爭總分最高點。單個用戶羣的點數可輕鬆達到15000個,因爲該網站已經有超過10 000個成員(當然,大多數是不活躍的)。我想要一個排行榜來展示競爭的用戶組和他們的總分,但是我擔心在實施這個系統時,總結積分要花很長時間才能完成。以下是問題:我應該在什麼級別(如果有的話)將點聚合保存在數據庫中?我應該在用戶表中爲每個用戶的總積分添加一個字段,然後爲用戶組排行榜進行總結?或者我應該爲每個更新的每個用戶組設置一個聚合字段,每次將點數添加到單個用戶?在實際實施系統之前,我想先了解需要多長時間才能完成這些工作,因爲執行不當會影響數千個用戶,而且我沒有太多的實際經驗數據庫。