2010-03-24 62 views
2

几个月前我正在开发一个项目,并且需要实施奖励系统。类似于S tackOverflow的徽章系统Badges跟踪用户习惯和活动? - Django

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


什么会跟踪用户活动的好办法,需要徽章颁奖呢?

Stackoverflow的系统需要知道很多信息,而且我也会得到一个印象,那就是会有大量的数据处理使事情变得复杂。

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


想法?

回答

2

我不认为你想象的那么复杂。我非常怀疑SO是否会用某种用户活动日志计算徽章(尽管技术上整个数据库都是用户活动日志)。当我查看徽章列表时,我看不到通过运行SQL select查询无法实现的任何内容。

一些查询可能相当复杂,并且可能存在某种奇特的缓存机制,但我没有看到任何理由为什么您需要批量计算徽章。

+0

是的你对SQL查询是正确的,我实际上正在考虑更多关于基于活动的徽章。例如计算一个人经常访问某个页面 – RadiantHex 2010-03-24 19:06:04

+0

@RadiantHex,在这种情况下,你将不得不记录页面点击。我建议不要根据页面浏览量发布徽章,这太容易操纵了。 – mikerobi 2010-03-24 19:46:57

+0

非常感谢迈克:) – RadiantHex 2010-03-24 20:22:05

0

一般而言,徽章/积分系统可以基于两件事。有趣的事件的

  • 活动日志,这是有效的文件登记收据的什么happend,这样你可以重新计算从地上爬起来,如果它曾经需要。可以像(user_id,timestamp,event_id,event_detail)一样简单

  • 大多数情况下,您已经预先设计了您的评分/积分系统,以便您确切知道要在用户身上保留哪些计数器。现在就像拥有包含所有细节的大记录一样简单。 (USER_ID,reply_points,login_points,LAST_LOGIN,thumbs_up_points,等等,等等。)

现在你可以拍这个模型对象上一些简单的方法,并根据需要它管理/存储点。