2

几个月前我在做一个项目,并且需要实施奖励制度。类似于 S tackOverflow 的徽章系统徽章

我可能没有以最好的方式实现它,我很好奇你会说什么。


什么是跟踪用户活动、授予徽章所需的好方法?

Stackoverflow的系统需要知道很多信息,我也觉得会有很多数据处理复杂的事情。

我假设 SO 每 24 次计算一次或两次徽章,并且可能存储日志或专用于徽章计算的服务器。


想法?

4

2 回答 2

2

我觉得没有你想的那么复杂。我非常怀疑 SO 会使用某种用户活动日志来计算徽章(尽管从技术上讲,整个数据库都是用户活动日志)。当我查看徽章列表时,我没有看到任何无法通过运行 SQL 选择查询来实现的内容。

一些查询可能非常复杂,并且可能存在某种奇特的缓存机制,但我看不出有任何理由必须分批计算徽章。

于 2010-03-24T18:48:27.183 回答
0

一般来说,徽章/积分系统可以基于两件事。

  • 有趣事件的活动日志,这实际上是已发生事件的纸质登记收据,以便您可以在需要时从头开始重新计算。可以像 (user_id, timestamp, event_id, event_detail) 一样简单

  • 大多数情况下,您已经预先设计了得分/计分系统,因此您可以准确地知道要为用户保留哪些计数器。现在它就像拥有一个包含所有细节的大记录一样简单。(user_id、reply_points、login_points、last_login、thumbs_up_points 等)

现在,您可以在该模型对象上使用一些简单的方法,并让它根据需要管理/存储点。

于 2010-03-25T15:24:42.240 回答