我一直在瀏覽本網站的答案,但我仍然有點不確定如何在其數據庫結構和實施計劃一個類似的系統。成就/徽章系統
在PHP和MySQL中,很明顯,一些成就是立即獲得的(當採取專門行動時,在所有情況下填寫所有配置文件字段),儘管我知道SO更新並在一定數量的時間。有這麼多的用戶徽章不會造成性能問題(在規模上:兩個用戶的徽章數量很多)。
因此數據庫結構我認爲會的東西一樣簡單:
Badges | Badges_User | User
----------------------------------------------
bd_id | bd_id | user_id
bd_name | user_id | etc
bd_desc | assigned(bool) |
| assigned_at |
但一些人說,這將是更好的有一個漸進式的方法讓誰共有1,000,000論壇帖子用戶不會減緩任何功能關閉。
那麼它會成爲徽章的另一張表,可能是增量式的,或只是上面的badge_user表中的'進度'字段?
感謝您的閱讀,請關注期望系統的可擴展性(例如成千上萬的用戶和20至40個徽章)。
編輯:一些鐵出了一些混淆我已assign_at作爲日期/時間,授予徽章的標準將被最好放置在準備的查詢/功能爲每個徽章不是嗎? (更好的靈活性)
是一些比較流行的徽章檢查比其他人還有嗎? – bluedaniel 2009-11-16 20:49:37
你能否澄清一下「分配(布爾)」的需求?是不是有點多餘,因爲除非你被分配了徽章,否則在第一種情況下你不會有映射?爲什麼論壇帖子的數量很重要? – Fredrik 2009-11-16 20:50:27
我的第一個錯誤!說你分配根據職位有良好的徽章製作即獎勵高職位量徽章 - >激勵讓用戶交互 – bluedaniel 2009-11-16 20:53:05