几个月前我正在开展一个项目,并且需要实施奖励系统。与S tackOverflow的徽章系统类似。 Badges
我可能没有以最好的方式实现它,我很好奇你的意思是什么。
跟踪徽章授予所需的用户活动的好方法是什么?
Stackoverflow的系统需要知道很多信息,而且我还会觉得会有很多数据处理使事情变得复杂。
我会假设SO每24个计算一次或两次徽章,并且可能存储日志或专用于徽章计算的服务器。
思想?
答案 0 :(得分:2)
我认为并不像你想象的那么复杂。我非常怀疑SO会使用某种用户活动日志来计算徽章(尽管从技术上讲,整个数据库都是用户活动日志)。当我查看徽章列表时,我看不到任何通过运行SQL选择查询无法实现的内容。
有些查询可能非常复杂,并且可能存在某种奇特的缓存机制,但我没有看到为什么你必须批量计算徽章的原因。
答案 1 :(得分:0)
一般来说,徽章/积分系统可以基于两件事。
有趣事件的活动日志,这实际上是纸质登记收到已发生的事情,以便您可以根据需要从头开始重新计算。可以像(user_id,timestamp,event_id,event_detail)一样简单
大多数情况下,您已预先设计了评分/点数系统,以便准确了解要保留给用户的计数器。现在它就像拥有包含所有细节的大记录一样简单。 (user_id,reply_points,login_points,last_login,thumbs_up_points等等。)
现在你可以在该模型对象上使用一些简单的方法,并根据需要管理/存储这些点。