当前位置:  开发笔记 > 编程语言 > 正文

存储徽章标准的最佳方法是什么?

如何解决《存储徽章标准的最佳方法是什么?》经验,为你挑选了2个好方法。

我一直在考虑如何在新网站上实现类似于SO的徽章功能.存储徽章标准的最佳方法是什么?

两个想法:

所有代码

'第二系统' - 创建用于定义徽章及其标准的元架构.将一些信息存储在数据库中,并让代码查询它以找出徽章及其标准.

还有更好的方法吗?



1> Will Hartung..:

规则.

您可以在系统中创建事件,并在事件流处理器中使用规则.

具体来说,假设你有一个"10个帖子"的徽章.您不会为每个帖子运行"select count(*)from posts where user =:user".相反,您有一个简单的规则,可以监视每个帖子,并"计算它们",将规则状态存储在用户配置文件中.

这样"制作10个帖子"就像"制作1,000,000"帖子一样便宜.

这也使系统更具可扩展性.


如果您选择此路线,请在添加新徽章时小心,并且需要分析现有用户应该已经获得的徽章.
您需要有一些机制来重新运行事件历史记录数据,以累积新徽章所需的统计信息并使其保持最新状态.

2> Gary Green..:

我同意威尔的观点.

在页面上创建"事件",以便每次事件发生时,即.如果用户删除帖子,它将使用该事件查询事件模块,例如EVENT_USER_DELETE_POST,然后您可以选择该事件并基于它构建查询.然后,您可以决定是否颁发徽章.

这将保持两个逻辑分离并保持模块化设计.以这种方式实现应该非常容易.

唯一的缺点是,如果事件没有被"捕获",那么用户可能已经获得了徽章标准,但尚未获得奖励.但是,这绝不会发生.我能想到的唯一情况是手动操作数据库.

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有