用于在网站上操作的EXP积分系统


EXP point system for actions on website

所以我需要创建一个函数,每次用户完成一个动作时都会调用该函数,然后根据他们的动作给他们经验值。

目前我有这样的东西:

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

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

谢谢!

您可能应该添加一个时间戳或日期时间字段,但是是的,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"