2012-05-20 27 views
1

所以我需要创建一个函数,每次用户完成一个操作时调用,然后根据他们的操作给他们提供exp点。针对网站操作的EXP点系统

目前,我有这样的事情:

$this->db->query("INSERT INTO experience (userid, action, exp) VALUES (1, $some_action, $exp)"); 

只是想知道什么是最好的方式来跟踪他们所取得的成就等?也可以使用SUM函数根据这些记录计算它们的exp值吗?或者如果有很多记录会太慢?

谢谢!

回答

0

很可能需要添加时间戳或日期时间字段,但是,是SUM将是解决办法:

$qry = "SELECT userid, SUM(exp) FROM experience WHERE userid = 9999" 

在每个动作分解:

$qry = "SELECT userid, action, SUM(exp) FROM experience WHERE userid = 9999 GROUP BY action" 
+0

好吧这是有帮助的。我认为我在思考时遇到的困境是,我也必须将通知系统与EXP系统连接起来,所以我需要跟踪他们的工作以及他们的收入。 – Sneaksta

+0

如果你想要更复杂的动作数据,你可以为它们设置一个单独的表格,在'experience'表格中有一个外键 - 所以'actions'表格将包含'action name','action type','行动价值'如果你觉得我的回答很有帮助,请随时投票:) – Sp4cecat