@tema21978

Как лучше реализовать многоуровневую реферальную систему для выплат рефералов?

Сейчас я представляю себе так:
в БД каждому пользователю сделать ячейку referal т.е хранить id пригласившего пользователя.
И запустить функцию с рекурсией, которая будет брать значение referal выплачивать ему %, и до тех пор пока не закончится ветка с рефералами.
Как вы считаете это решение нормальное? Может вы что предложите ?
  • Вопрос задан
  • 168 просмотров
Пригласить эксперта
Ответы на вопрос 1
@mrxor
Simple is better than complex
Варианты:
1. Хранить как вы описали, придется шариться по базе потом выстраивая граф при каждой оплате.
2. Хранить сразу список рефереров с уровнем (json филдом, например), под ваши требования пойдет, но есть ограничения при дальнейшем расширении
3. Сделать M2M и в промежуточной таблице хранить инфу об уровне рефералов. Тогда вы сможете легко находить и всех рефералов и всех рефереров юзера.
Т.е. промежуточная таблица в М2М будет хранить: referral_id, referrer_id, referral_level.

Плюс при эволюции системы вы скорее всего захотите хранить еще какую-то информацию о рефералах и тогда сделаете отдельную 1-to-1 табличку с реферальным профилем юзера. Ну и М2М тогда будет между реферальными профилями.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы