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

PHP*_*VER 3 php mysql database-design referrals

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

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

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

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

我正在考虑创建一个名为referrals的新表,例如当用户表中我的网站上的注册用户引用某人​​时(我想我会创建一个表单,询问他们想要引用的人的电子邮件及其名称并将其添加到然后它会在那里显示他们推荐的人以及他们推荐了多少人,以及他们推荐的人是否加入了我的网站.

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

到目前为止我的表看起来像这样:

referments(table)
- uid(引用者的id,这将是来自users表的注册用户)
- ref_count(来自users表的引用者总数引用了人)
- action(可能不是rite名称)(如果被引用的人已完成)注册)
- 我想某些人或某事被提及的人,不确定以及我可能还需要什么.

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

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

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

也许我正在努力比实际更难,但我出于某种原因没有得到它背后的逻辑,如果有人能告诉我,我正在做的事情是完全错误的,而不是最好的方法去做它请做.

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

Ash*_*ane 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
Run Code Online (Sandbox Code Playgroud)

遵循政策"不信任任何人",您不应该使用名称作为推荐中的字段.例如.我发送了一个推荐信:email => your_email,name => abuse.它降级了你.

对于计数没有.转介:

select count(*) as referral_count from referrals where referrer_id = 'user_id'
Run Code Online (Sandbox Code Playgroud)