我目前有一个社交游戏应用程序,它使用mongodb作为数据库。我的问题是如果我想创建积分和徽章系统,有什么建议。成就/徽章的业务逻辑可能变得相当复杂,而且非常特殊,因此实时颁发徽章看起来效率不高。我想象一下,在某个地方将队列追踪的行为添加到某个队列中,例如Amazon SQS,或者只是将用户的活动馈送作为队列使用,并让另一个离线工作进程处理并仅处理每个动作/活动的效果,以查看任何特定的徽章是交叉的。如何使用nosql构建成就和徽章
我对这种方法的担心是,它看起来像徽章查询可能变得相当密集,我也必须跟踪大量的动作。我可以设想,取得的成就不尽相同,例如某人在过去4周内每周都获得第2名的徽章,或者在50个州中的每一个州都有朋友的人的徽章等等......
这种类型的东西有没有更优雅或者尝试过的方法?除了mongo之外,使用另一个数据库来获得成就/活动提要/排行榜,创建mongo /其他db混合环境是否合理?
像Redis,Neo4J或者普通旧SQL Server这样的选择是混合解决方案的不错选择吗?我喜欢Mongo,所以这将保持为我们的主要分贝,但好奇看看如果增加另一个分贝将有助于。