2011-08-20 45 views
0

我即将创建一个新的竞赛网站,用户可以上传图片/投票。连续行动的成就系统

我想根据一些非常容易的“成就”添加一些成就奖励/徽章。

成就例子: 登录连续5天 - 登录连续10天 - 登录连续20天

投票5张图片(不是你) - 投票5张,连续5天

我希望能够添加更多的成就,而不会在以后添加太多的代码。一个基本的规则引擎将被创建。

现在..我有一些麻烦试图想出如何做到这一点。任何人都做了类似的事情,想共享数据库结构/编码示例,或者有一个好主意的人?

阅读关于SO上的主题的50个不同线程,但找不到任何可用的东西。

+0

您已经完成的任何表结构?你已经尝试过什么?由于成就可能各不相同,他们可能需要具体的结构。例如,对于连续的事情,您需要保留2个字段 - 一个用于维护日期和另一个用于计数。也许,像这样: 1. achievement_id - 标识哪个成就viz login,picture_vote等 2. user_id - 跟踪哪个用户 3. last_access_date - 最后一次尝试成就的日期 4. count 所以,此表中的总记录数=用户数*成就数 – Abhay

回答

0

在表格中新建一个包含最后活动日期的字段(可能将其命名为lastactivity),然后创建另一个字段并将其命名为consecutive。之后,每次用户登录(或投票)时,检查上次活动日期,如果是昨天,则将字段consecutive的值加1并更新lastactivity字段。否则,将其重置为1.