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

Всем привет, может ли кто-то подсказать правильную структуру базы данных.

Хочу сделать многоуровневую реферальную программу.
Например у нас есть юзер1, который пригласил юзер2 и юзер3.
Юзер2 пригласил в свою очередь юзер4 и юзер5.

И таким образом, если юзер5 делает какой-то донат, то X% от всей суммы получает Юзер2 (тот, кто пригласил). И Y% от всей суммы получает Юзер1 (который в свою очередь пригласил того, кто пригласил этого пользователя)

В голову приходит самый простой вариант:

id — PK
username
email
parent_id — FK

Как я понимаю, если у меня будет 5 уровневая партнерская программа, то мне надо будет сделать минимум 5 запросов. Есть ли проще вариант решения этой задачи?

Благодарю тех, кто уделил внимание

10 ответов

14 просмотров

Как я понимаю, если у меня будет 5 уровневая партнерская программа, то мне надо будет сделать минимум 5 запросов. — если база поддерживает рекурсивные запросы — можно ограничиться одним

Nameless- Автор вопроса
Morruth🏴‍☠️
Как я понимаю, если у меня будет 5 уровневая партн...

Знаю что оркал поддерживает. Но там сложность запроса — экспоненциальная, если не ошибаюсь

Рекурсивные запросы Ну или на беке итерируйтесь Это явно не онлайн операция

Nameless- Автор вопроса
Roman Sergeev
Рекурсивные запросы Ну или на беке итерируйтесь Эт...

На беке итерируйтесь > это значит, что мне нужно на беке сделать 5 запросов в базу?

Roman Sergeev
Да уже почти все через cte поддерживают

когда я смотрел в последний раз — мыскль не поддерживал

Nameless
На беке итерируйтесь > это значит, что мне нужно н...

Например В реале у вас не будет глубоких структур А начисление можно раз в сутки делать

Nameless- Автор вопроса
Roman Sergeev
Например В реале у вас не будет глубоких структур ...

Правильно ли я понял, что будет отдельно таблица транзакций (донатов). И раз в день надо будет выбирать новые записи, и пробегаться по каждой, и делать рассчёты процентов ?

Morruth🏴‍☠️
когда я смотрел в последний раз — мыскль не поддер...

Ну, и без рекурсивных cte жили же Когда-то, там где было нужно быстро, я просто материализовывал все транзитивные связи. Это не сильный оверхед по месту и сильное ускорение на запросах некоторых видов

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

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

Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
11
Добрый день. Созданию отношения таблиц для учёта кораблей, их движения между точками (портами) согласно расписания. Терзают сомнения в правильном ли направлении двигаюсь 😅 1...
Aleksey
1
у меня такой вопрос про память в x86 возник, может кто пояснить?.. у процессора есть (как минимум) 3 типа адресов (названия "п1", "п2", "п3" --- мои, чтобы проще было дальше)...
Toideng
10
Привет. Наверняка у кого-нибудь здесь есть опыт работы с трекерами (встроенными в OpenCV (KCF) или абстрагированными) на одноплатниках. Если не рассматривать малинку и други...
Georgy Makarov
4
Hi guys Do you know any persian/farsi or english group for opencv?
@. .@
4
А чего при переходе с 2 на 3 все что в билдере сделано тютю?
Денис Александрович
5
Всем привет, Добавил в плагин определение user agent public function registerMarkupTags() { return [ 'filters' => [ 'staticPage' => ['RainLab\Pages\Cl...
John Norton Kruger
3
Приветствую. Подскажите, как можно исправить баланс белого на подобных примерах фото, именно, чтобы брать белый цвет с корпуса теста? А след. шагом будет определение оттенка п...
Volad Malevich
3
Я колись ставив гуглу антиспам 3.0, може і норм, але мені не дуже зайшло. Теж думав тиждень, що його і куди. Зупинився на трех варіантах відразу всі три і включив 1. Перевір...
𝓔𝓾𝓰𝓮𝓷𝓮𝓥 J
2
И всё-таки спрошу насчет такого вариант, сомнительно или нет? (Windows стоять не будет)
Georgy Makarov
5
Карта сайта