170 похожих чатов

Привет, заказчик поставил задачу сделать реферальную систему с переливом "Я" может

пригласить к себе только 3 партнеров, остальные приглашенные партнеры "Я" будут переливом идти слева на право, "Пх" слева имеет лично пригашенных 2х партнеров, а последнего партнера пригласил "Я" и получается у "Пх" линия заполнилась, теперь все новые партнеры "Я" пойду к "Пх" который по середине, как только у него в линии будет 3 партнера. Партнеры "я" будут идти к "Пх" справа и такая глубина бесконечная.
Может кто знает как это реализовать?

13 ответов

15 просмотров

Написать списки со своей логикой. Я думаю, тут просто, потому что не надо хранить состояния, откуда пришёл и кому обязан своим появлением. Просто пихаешь в любое свободное место в списках по порядку.

Обычное бинарное дерево

123- Автор вопроса
Ярослав
Написать списки со своей логикой. Я думаю, тут про...

а как потом вести подсчет пользователей которых пригласил лично "Я"?

123
а как потом вести подсчет пользователей которых пр...

Зачем? Они же под другими людьми подписаны.

id, name, parent_id 1, Я, null 2, Пх, 1 3, Пю, 2 4, Пю, 2 5, Пю, 2

123- Автор вопроса
Ярослав
Зачем? Они же под другими людьми подписаны.

Хорошо, а как определить для него свободное место?

123
Хорошо, а как определить для него свободное место?

Перебором, например. Но вообще, когда список формируешь, у тебя же есть текущий элемент. ТОлько по его заполнению перескакиваешь на потомка.

Vadim
id, name, parent_id 1, Я, null 2, Пх, 1 3, Пю, 2 4...

И ПЮ всегда можно найти самого верхнего человека, который организовал приглашение людей. Аналогично по Я Можно найти всех рефералов с какой-то глубиной.

123- Автор вопроса

"Я" приглашает пользователя, у Пю нет свободного места, но под Пю у Пл есть свободное место, как его туда пихнуть?)

123
"Я" приглашает пользователя, у Пю нет свободного м...

Ты пихаешь всегда в текущтего П, у которого есть свободное место. Место закончилось - переходишь к следующему П, а не ищешь, куда бы пихнуть,

123
"Я" приглашает пользователя, у Пю нет свободного м...

Тригер на проверку места у любого из рефералов

123- Автор вопроса
Ярослав
Ты пихаешь всегда в текущтего П, у которого есть с...

А как это реализовать, не буду же я делать для каждого пользователя if. ну и как там определить подход слева на право ?

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

Обсуждают сегодня

У меня это всегда вопрос вызывало.. Нафига писать код так, чтобы потом ошибки вылавливать?
Nik
44
всем привет. реально ли понять чем в процессе занята память? delphi/linux, процесс свой
Handatros
12
что за асемблер кста?
Shvabrikk Nya
19
Добрый день! Пробую отловить исключение EConvertError: function _TryTextToDouble(var DoubleVar: Extended; Text: String): Boolean; begin try DoubleVar := StrToFloat...
Kirill Filippenok
19
А где @Grinyaha уважаемый пропал?
Am Ambrion
14
This automated cryptocurrency trading system uses intelligent algorithms to buy low and sell high on leading crypto exchanges. Many users have already enjoyed significant prof...
Endu Wako
1
Сделал краткий обзор магазина из статьи и заодно там же записал инструкцию по развёртыванию. https://www.youtube.com/watch?v=8-sE1vNk95Q (чё думаете по звуку? кое-что поменял...
Andrey K
17
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Привет, коллеги! Возникла задача ограничить максимальный размер вложений для определённых расширений, например, чтобы для изображений лимит был 10 МБ, а для видео — 100 МБ. Ог...
Andro
1
вот не понимаю, зачем вообще лезть в осдев, если даже базы не знаешь? хотя бы про загрузку, форматы файлов железо какое-никакое. Ну реально, даже зная работу железа, с условны...
Mixail Frolov
7
Карта сайта