Задать вопрос
@tema21978

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

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

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

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

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