16

我正在寻找与stackoverflow徽章类似的东西。您也可以将它们等同于游戏中的成就。

但不确定如何为他们设计数据库/代码/跟踪

我得到了我应该为徽章做的事情,例如:

利他者 × 1456 你在别人的问题上手动授予的第一个赏金

因为它们是一次性事件,但如何处理其他事件,例如:


分析 × 16389访问了常见问题解答的每个部分

ETC...

如何处理它们,如何跟踪每个人的进度等等......是否有教程或其他东西可以帮助我为他们找出设计模式?

4

1 回答 1

17

对于给定的示例,您基本上需要两种机制。

我不知道它是如何在 SO 上完成的,这只是一个解决方案的建议。

让我们先看看“分析”。当用户访问常见问题解答中的特定区域时,您将不得不通过一个简单的标志进行记录。让我们设想一个 DB 表,其中每个 FAQ 部分都有一个字段和一个用户 ID。这以“N”开始(或 0,或者您想代表您的标志)。当用户访问该区域时,您调用代码将该字段翻转为“Y”。当所有字段均为“Y”时,您可以授予该徽章。

至于“选民”和“直言不讳”,您可以通过对现有数据的查询来检索此信息,前提是这些查询不是太繁琐。您将需要考虑何时运行这些检查。这基本上归结为两种选择。

1)当执行可能获得徽章的操作时(即访问常见问题解答部分,对问题进行投票,由其他人加注星标的问题)

2) 定期(每小时、每天等)根据当前数据检查您的所有徽章。

请记住,徽章在 Stackoverflow 中是单向的,因此如果您想要等效,那么您不必考虑“取消授予”徽章的逻辑。

于 2012-04-05T12:30:22.753 回答