Система рефералов пользователей с использованием PHP и MySQL - PullRequest
3 голосов
/ 16 апреля 2011

У меня уже есть полноценная система членства, и я хочу интегрировать свою собственную систему рефералов пользователей, но мне нужны некоторые советы, советы по этому вопросу.

Моя таблица текущих зарегистрированных пользователей похожа на

пользователей (таблица)
- id (идентификатор пользователя)
- электронная почта (электронная почта пользователя)
- пароль (хэш пароля пользователя)
- reg_date (дата регистрации пользователя)

У меня есть некоторые другие поля, но они не имеют отношения к тому, что я хочу сделать, и чтобы все было как можно проще, я их пропустил.

Я подумываю о создании новой таблицы с именем рефералы и, например, когда зарегистрированный пользователь на моем сайте из таблицы users ссылается на кого-то (думаю, я бы создал форму с запросом для электронной почты человека, которого он хочет отослать, и его имени, и добавить его в таблицу рефералов) в нем будет отображаться учетная запись, на которую он ссылался и сколько человек он сослался, и если человек, на которого он ссылался, присоединился к моему сайту.

Я надеюсь, что кто-нибудь сможет объяснить логику того, что мне нужно в моей таблице рефералов для отслеживания рефералов?

Пока мой стол выглядит так:

рефералов (таблица)
- uid (идентификатор реферера, это будет зарегистрированный пользователь из таблицы пользователей)
- ref_count (всего реферер из таблицы пользователей привлек людей)
- действие (возможно, не название ритуала) (если лицо, на которое было направлено письмо, завершило регистрацию)
- Я предполагаю, что какой-то идентификатор или что-то для человека, которого направляют, не уверен, и что еще мне может понадобиться.

Очевидно, что на странице регистрации у меня будет текстовое поле реферера, в котором пользователь может вводить имя пользователя, на которого он ссылался, и проверять, ссылался ли он на уже зарегистрированного участника, и я думаю, что по реферальной ссылке я бы добавил пользователя, который сделал реферал и просто проверил на странице регистрации что-то вроде регистрации? ref = username_here

и если ref установлен через get, автоматически добавьте имя пользователя в текстовое поле.

Как вы видите, я борюсь с логикой за таблицей рефералов и хотел бы, чтобы кто-нибудь объяснил, что еще мне понадобится? и логика того, что мне нужно будет сделать в php, чтобы собрать все вместе (не код), просто краткое грубое руководство о том, что я должен делать. Я знаю, что мне нужно будет выполнить определенные проверки и т. Д., Например, проверку, чтобы убедиться, что они не передали их ранее (по причинам спама) и что электронная почта лица, на которое они хотят сослаться, ранее не была передана кем-либо еще (по причинам спама), и что адрес электронной почты человека, на которого он хочет сослаться, не существует в качестве уже зарегистрированного пользователя в таблице пользователей и т. д.

Может быть, я делаю это сложнее, чем на самом деле, но я по какой-то причине не понимаю логику этого, если кто-то может сказать мне, что то, что я делаю, совершенно неправильно и не лучший способ сделать это это пожалуйста.

Полагаю, вы могли бы сказать, что я прошу макет (черновик) таблицы рефералов, чтобы делать то, что я хочу, и то, что я должен делать в php, чтобы собрать все вместе.

Ответы [ 2 ]

5 голосов
/ 17 апреля 2011

Установите таблицу рефералов следующим образом:

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'
0 голосов
/ 31 января 2017

Я нашел один запрос на это, поскольку я делаю тот же модуль.Если реферальная ссылка отправляется другому лицу, на которое пользователь не ссылался, то что вы посоветуете:

(1) Либо разрешите этому человеку зарегистрироваться и заплатить пользователю (так как это может привлечь больше пользователей)на сайт.) (2) Позвольте этому человеку зарегистрироваться, но не платите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...