【发布时间】:2012-02-16 15:35:17
【问题描述】:
我们正在为我们的论坛制作一个游戏化组件,该组件正在 Django 中开发。我们希望用户在实现特定目标后立即获得徽章。但是,我们担心会进行的数据库查询量。例如,如果帖子获得一定数量的浏览量,则获得一个徽章。如果每次查看帖子时都检查徽章的条件,那将是很多查询。我们唯一的其他选择是在特定时间间隔或其他事件中进行检查,例如用户查看他们的个人资料吗?由于延迟,从用户的角度来看,这不是最佳选择。
【问题讨论】:
-
SO 有延迟,从用户的角度来看是可以的。
-
确实,我想知道是否有办法进一步了解 SO 的徽章系统?
-
您是否考虑过使用信号更新计数器字段并在达到预期目标时分配徽章的可能性?
-
@nabucosound:是的,这就是我们一直在做的事情,我们使用数据库表来记录统计信息,包括查看次数,因此每次查看帖子时,都会调用数据库查询获取“views”的值(在这种情况下,对超过一定数量的视图的所有问题求和)。如果有很多人使用该网站,就会有很多数据库调用只是为了检查徽章的条件,这可能会占用太多资源。这就是我担心的问题
标签: database django optimization architecture