【问题标题】:Keeping track of user habits and activities? - Django跟踪用户习惯和活动? - 姜戈
【发布时间】:2011-01-31 09:39:14
【问题描述】:

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

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


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

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

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


想法?

【问题讨论】:

    标签: python sql django logging badge


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 是的,您对 SQL 查询的看法是正确的,我实际上更多地考虑基于活动的徽章。例如计算一个人经常访问某个页面
      • @RadiantHex,在这种情况下,您必须记录页面点击量。我建议不要根据页面浏览量发布徽章,这太容易操纵了。
      • 非常感谢迈克 :)
      猜你喜欢
      • 1970-01-01
      • 2011-10-15
      • 2020-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-22
      相关资源
      最近更新 更多