【问题标题】:User Referral System using PHP and MySQL使用 PHP 和 MySQL 的用户推荐系统
【发布时间】:2011-08-07 01:09:24
【问题描述】:

我已经拥有一个完全承诺的会员系统,并想整合我自己的用户推荐系统,但想要一些技巧,真正的建议。

我当前的注册用户表是这样的

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

我还有一些其他领域,但与我想做的事情无关,为了让事情尽可能简单,我把它们省略了。

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

我希望是否有人可以解释我需要在我的引荐表中跟踪引荐的逻辑?

到目前为止,我的桌子是这样的:

推荐(表格)
- uid(推荐人的 id,这将是用户表中的注册用户)
- ref_count(来自用户表的推荐人总推荐人)
- 行动(可能不是仪式名称)(如果被推荐的人完成注册)
- 我想被推荐人的一些 id 或其他东西,不确定以及我可能还需要什么。

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

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

如您所见,我正在为推荐表背后的逻辑而苦苦挣扎,如果有人能解释我还需要什么,我会喜欢它吗?和我需要在 php 中做的事情背后的逻辑(而不是代码)只是一个关于我应该做什么的快速粗略指南。我知道我需要进行某些检查等,例如检查以确保他们之前没有推荐过他们(出于垃圾邮件的原因),并且他们想要推荐的人的电子邮件之前没有被其他人推荐过(出于垃圾邮件的原因),并且他们想要推荐的人的电子邮件在用户表等中不作为已注册成员存在。

也许我让这件事变得比实际情况更难,但由于某种原因,我没有理解其背后的逻辑,如果有人能告诉我我正在做的事情是否完全错误,而不是最好的解决方法请这样做。

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

【问题讨论】:

    标签: php mysql database-design referrals


    【解决方案1】:

    如下设置引用表:

    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=>abuse。它会让你降级。

    用于计数。推荐次数:

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

    【讨论】:

    • 感谢您的回复。在我的注册页面上,您如何建议我跟踪是否已通过 get 方法设置了推荐,因为您建议不要使用用户名作为推荐链接?也许:signup.php?ref=email_of_referred_person_here?或者我应该创建一个referred_id 列,它可以是例如随机md5() 哈希,并且对于被推荐的人来说是唯一的。不知道什么是最好的方式去这一点。感谢您的任何回应。 phplover
    • 您可以使用 id(主键)来跟踪引用,如 signup.php?ref=34 并从表中获取电子邮件。
    【解决方案2】:

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

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

    【讨论】:

    • 这可能更适合作为评论。
    • 我还需要 16 声望才能发表评论,您愿意捐赠吗? @DonaldDuck
    猜你喜欢
    • 2021-07-20
    • 1970-01-01
    • 2020-11-09
    • 2010-10-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-15
    • 2014-06-10
    • 1970-01-01
    相关资源
    最近更新 更多