使用PHP和MySQL的用户推荐系统

时间:2011-04-16 19:58:18

标签: php mysql database-design referrals

我已经拥有一个完全承诺的会员制度,并希望整合我自己的用户推荐系统,但想要一些提示,建议真正做到这一点。

我当前的注册用户表类似于

  

用户(表)
   - id(用户ID)
   - 电子邮件(用户电子邮件)
   - 密码(用户密码哈希)
   - reg_date(注册日期用户)

我还有其他一些领域但与我想做的事情无关,并且尽可能简单地让我们把它们排除在外。

我正在考虑创建一个名为推介的新表格,例如当我的网站上的注册用户从用户表中引用某人时(我想我会创建一个表单)要求他们想要推荐的人的电子邮件和他们的姓名并将其添加到推荐表中)然后在那里显示他们推荐的人以及他们推荐的人数以及他们推荐的人是否加入了我的网站。

我希望有人能在我的推荐表中解释我需要的逻辑来跟踪推荐吗?

到目前为止,我的表格如下:

  

推荐(表)
   - uid(引用者的ID,这将是来自用户表的注册用户)
   - ref_count(来自用户表的推荐人总数已经引用了人)
   - 行动(也许不是仪式名称)(如果被推荐的人完成注册)
   - 我猜这个人的身份或其他东西,不确定以及我可能需要的其他东西。

显然在注册页面上我会有一个推荐人文本框,用户可以输入他们被推荐的用户名,并检查他们是否被已注册的会员推荐,我想在推荐电子邮件链接中我会添加用户谁提交推荐并在注册页面上进行简单的检查,例如注册?ref = username_here

如果ref通过get设置自动将用户名添加到文本框中。

正如你所看到的那样,我正在努力应对推荐表背后的逻辑,如果有人可以解释我还需要什么,我会喜欢它吗?我需要在php中完成所有工作(而不是代码),这只是我应该做的快速粗略指导。我知道我需要做一些检查等检查,以确保他们之前没有提到它们(出于垃圾邮件的原因),并且他们想要推荐的人的电子邮件之前没有被其他人推荐(出于垃圾邮件的原因)他们想要推荐的人的电子邮件不存在于用户表等已注册的成员中。

也许我正在努力实现它的实际目标,但是由于某种原因我没有得到它背后的逻辑,如果有人能告诉我,我在做什么是完全错误而不是最好的方式去做请做。

我想你可以说我要求推荐表的模型(草稿)来做我想要的事情以及我应该在php中做的事情,以便将它们整合在一起。

2 个答案:

答案 0 :(得分:5)

按如下方式设置推荐表:

referrals:
    id (primary key)
    referrer_id (user who is referring someone else)
    referred_email (email of person being referred)
    status (referred[default], registered)
    created_on
    updated_at

遵循“不信任任何人”的政策,您不应将名称用作推介中的字段。例如。我发送推荐信息:email => your_email,name => 滥用。它会降级你。

计算没有。转介:

select count(*) as referral_count from referrals where referrer_id = 'user_id'

答案 1 :(得分:0)

我发现了一个查询,因为我正在制作相同的模块。如果推荐链接被发送给未被用户推荐的其他人,那么您会建议:

(1)允许该人注册并向用户付款(因为这可以为网站带来更多用户。) (2)允许该人注册,但不要付钱。