+ -
当前位置:首页 → 问答吧 → 会员等级算法

会员等级算法

时间:2008-03-09

来源:互联网

继续分享最近开发项目中的心得,会员等级算法(思想绝对原创):

会员等级:1、2、3、4、5、6、7、8、9……,新会员默认等级为1级。

会员升级基础积分:100分,即1级会员积分为0 - 99分之间。

系统积分规则:例,发表一篇文章+2分,发表一篇评论+1分。

实际会员升级积分:会员升级基础积分 * 会员等级 * 会员等级。例,会员当前为1级会员,升级到2级所需积分为:基础积分(100) * 级别(1)* 级别(1)= 100 * 1 * 1 = 100分。如会员当前为3级,升级到4级所需积分则为: 100 * 4 * 4 = 1600分 。

实际积分计算公式:发表一篇文章 = 基础积分(2)* 会员等级 = 2 * 1 = 2,发表评论同理,即用基础积分乘会员当前等级。

根据上面算法可知:
1级:升到下一级所需积分为100 * 1 * 1=100,发表一篇文章加2 * 1=2分,升级需发表文章100 / 2 =50;
2级:升到下一级所需积分为100 * 2 * 2=400,发表一篇文章加2 * 2=4分,升级需发表文章400 / 4 =100;
3级:升到下一级所需积分为100 * 3 * 3=900,发表一篇文章加2 * 3=6分,升级需发表文章900 / 6 =150;
4级:升到下一级所需积分为100 * 4 * 4=1600,发表一篇文章加2 * 4=8分,升级需发表文章1600 / 8 =200;
……
10级:升到下一级所需积分为100 * 10* 10=10000,发表一篇文章加2 * 10=20分,升级需发表文章10000 / 20 =500;

发表文章时的MYSQL更新方法:
uid:会员ID
credit:会员积分
level:会员级别
postnum:发表文章总数
$postcredit:发表文章增加的基础积分
$basecredit:升级基础积分

"UPDATE members SET credit=credit+$postcredit*level, postnum=postnum+1, level=floor(sqrt(credit / $basecredit) + 1) WHERE uid=$uid"


---------------------------------------------------
希望大家对此算法谈一下自己的观点,因为我也是刚把这个算法加入项目中,不知道是否存在问题。

作者: jjqweb   发布时间: 2008-03-09

这有啥特别之处吗?

作者: luzhou   发布时间: 2008-03-09

sql代码这样写不太好,floor交给PHP更快

还有,如果你的确是这么写的,那么我的积分太多啦

作者: cwk32   发布时间: 2008-03-09

引用:
原帖由 cwk32 于 2008-3-9 10:57 发表
sql代码这样写不太好,floor交给PHP更快

还有,如果你的确是这么写的,那么我的积分太多啦
1、我项目中是交给PHP处理的,写在SQL里是想表达一下意思。
2、呵呵,版主玩过网游吗?这个算法的灵感其实来自于前段时间玩的游戏,算法中的积分只是为升级用的,类似网游里的经验。
不过也没有关系,级别越高得到积分相应越多的同时,消耗积分的时候与其成正比。

[ 本帖最后由 jjqweb 于 2008-3-9 16:45 编辑 ]

作者: jjqweb   发布时间: 2008-03-09

哦!玩游戏也可以学习呀!

作者: yiqing666   发布时间: 2008-03-28