SQL&下线构建器应用程序的数据库设置

时间:2011-04-01 18:59:00

标签: mysql database database-design

我目前正在为想要 downloadbuilder 之类的客户建立一个网站。基本上它是一个带有注册表格的网站,每个成员都有一个 referral-url ,其中包含了他们的推荐ID,所以当有人加入时,他们被置于下线成员中的某种金字塔结构

网站本身包含一个页面,其中包含指向其他MLM类型网站的链接,因此刚加入的人将位于某人的下线,并会显示推荐指向其他MLM的链接网站 各自的传销网站推荐ID

如果这些新成员决定关注他们的上线也成为其他MLM网站的成员他/她可以将网址替换为这些网站及其推介网址用于MLM计划。这一切都非常简单,而且相对容易构建。

棘手的部分一旦新成员没有按照他/她的上线进行某个传销计划,如果是这样的情况下线这个新成员会看到新成员上线的推介ID 或层次结构中的第一个,他们确实输入了他的推荐网址。

例如,布朗先生,如下图所示,仅加入计划1& 2 他的下线会看到所有三个程序,但其中一个只加入程序2& 3 这意味着对于程序3,他的直接上线将是布朗先生的上线。(见紫线)。

enter image description here

这部分是我不确定如何做到这一点,没有复杂的递归查找以及如果有人退出或离开网站会怎样?

有没有办法使用 SQL或任何其他技术进行此类查找。我想到在表的列中存储“路径”,其中包含每个新成员的上线谱系,因此找到父,祖父母等相对容易上。但是你仍然需要递归通过这条路径找到第一个带有referral-url的路径。此外,如果您删除树中的某人需要更新所有路径以反映新情况。

树的深度或宽度没有限制。

我希望这不会太混乱。而且这不是一个愚人节的笑话,我真的希望它是......

1 个答案:

答案 0 :(得分:1)

我假设你在介绍Z先生(由布朗先生推荐)时知道,Z先生是布朗先生的下线。我还假设你存储了这个推荐信息。

当您向Z先生展示所有节目时,当Z先生报名参加节目时,您可以简单地浏览推荐信息并确定该人是否已注册同一节目。如果是,那么您可以将下线信息链接存储到Mr. Browns Program 1 recoord。如果布朗先生没有注册,那么使用推荐数据,你可以走到谁推荐布朗先生并检查相同的。

希望这是有道理的,我对MySql不够熟悉,但使用代码应该很容易递归地执行此操作。一些psuedo代码示例:

int GetUplineProgramId(User, ProgramID)
     Select All ProgramID's that the person who referred me signed up for
     If my referred is signed up for program, then return that record ID
     else return GetUplineProgramId(my referrals UserID, ProgramID)
end