现在要做一个关于会员推广的系统,不需要无限推广,A:为一级推广,B为二级推广,C:普通推广员...当C推广的会员在网站消费后A、B、C都会得到提成...假如我是C的下家,我充值了,怎么知道我的上家是谁,我的上上家是谁,我的上上上家是谁呢?
PS:如果只有一级的话,后面带个参数就好了,可是级数多了怎么办?

解决方案 »

  1.   

    用二叉树,这个可是无限极的,声明个类,node,
    子节点,父节点....保留引用,这样就可以无限的引用了
      

  2.   

    典型的组合模式,http://blog.sina.com.cn/s/blog_495697e60100l0tg.html,希望对你有用。
      

  3.   

    这不就貌似一个无限级分类了,在会员表当中建立一个PID字段,表示当前会员的父级是哪个,为一级时,PID为0,然后再利用程序写个无极分类的类,便可以轻松得到
      

  4.   

    查询繁琐,你在每个用户中加一‘推荐人ID’不就行了,每个ID以‘|’分开,在插入推荐人的时候以这种方式:该用户推荐人的‘推荐人ID’ + 该用户ID行成连动,不就行了
      

  5.   

    推广链接id / 提供者 / 更新时间 / 推广者设置四个字段mysql. 当推广者上写入了C 或者B时,  那么通过提供者的id, 很容易就知道组织结构了.
      

  6.   

    你能有多少个分类,第一次装载数据时,便把所有的分类按照无极分类的格式得到了,缓存一下,下次需要获得某个分类,或者某个分类的下个分类,或者上个分类,写一个相对应的获取方法就非常容易了,这问题我想不是你所说的查询问题,真正存在的问题是你怎样表示这个无极分类的问题,所以我才说需要一个PID来表示
      

  7.   

    加个字段:pids
    id pids    
    1   0       
    2   1       
    3   1,2     
    4   1,2,3   如果提成比率一样,语句要简单点:
    update tablename set `帐户金额`=`帐户金额`+{$ticheng} where id in(select pids from tablename where id='{$id}');提成比率不一样update tablename set `帐户金额`=`帐户金额`+(CASE `用户推广等级` WHEN 'A' THEN '{$ticheng_A}' WHEN 'B' THEN '{$ticheng_B}' WHEN 'C' THEN '{$ticheng_C}') where id in(select pids from tablename where id='{$id}');