
Vitaly
20.05.2018
22:34:19
но бл за это меня и обосрали
Насколько я помню, тебя не за это обосрали
Тебе вполне логично говорили, что не хорошо во вьюхе вытягивать откуда-то значения
Если вьюхе нужно это значение, пусть контроллер передаст его

Антон
21.05.2018
04:38:03
Он даже сути не понял
Доку бы прочитал от корки до корки

Google

DK
21.05.2018
04:41:41
Доброго времени суток.
Навыков или ума не хватает у меня чтобы составить условие.
Пишу систему сетевого маркетинга. Сделал реферальную систему,но кол-во приглашаемых людей должно быть матричным.
Не могу понять как сделать "переливание" участников.
Например заходит человек по реф ссылке к id-1 , но у него уже есть 3 реферала и больше он принять не может,как закрепить его за следующим человеком(тот кого пригласил id-1) ниже по иерархии? При условии что у него есть свободные "места".

Tadeus
21.05.2018
05:07:57

DK
21.05.2018
05:08:30

Tadeus
21.05.2018
05:09:19
Да, но больше всего баллов получит пригласивший

DK
21.05.2018
05:09:34
не совсем

Tadeus
21.05.2018
05:09:41
А все вышестоящие будут получать часть от того, что останется

DK
21.05.2018
05:09:51
% по иерархии расписаны в сотвествии с маркетинговым планом
почти у всех по 5%

Tadeus
21.05.2018
05:10:22
А у пригласившего?

DK
21.05.2018
05:10:37
и даже у него 5%

Google

DK
21.05.2018
05:11:10
но когда id -1 пригласит(или получит) человека ,который будет на 5 уровней ниже него тогда с него он получит 50%

Антон
21.05.2018
05:12:00
На МММ работаешь?

DK
21.05.2018
05:12:27
я не сильно шарю во всей этой движухе,дали ТЗ делаю
ну или стараюсь делать..

Антон
21.05.2018
05:13:49
А проблемы в чем? Смотришь у владельца рефералов, есть ли свободное местоя если нет та же самая операция у его детей
Только кажется если иерархия если большая, то пройтись по всем накладно

DK
21.05.2018
05:15:18
ну
за все 6 уровней id-1 сможет набрать себе 1092 человека максимум

Антон
21.05.2018
05:16:38
А если nested sets ?

DK
21.05.2018
05:16:38
с которого ему будут падать деньги

Антон
21.05.2018
05:16:46
Там вроде без рекурсии

DK
21.05.2018
05:17:23
я то и дерево рефералов храню в mysql как ref_1 ref_2 ref_3.. ref_6
так.. если без рекурсии просто сделаю всё на else if и протестирую на адекватность логики

Vitaly
21.05.2018
05:55:46
Но критерием остановки поиска будет наличие у пользователя свободного места для реферала
Ещё советую сразу подумать, что будет, если пользователя удалить (если логика приложения разрешает)

Shaun
21.05.2018
06:47:44
я то и дерево рефералов храню в mysql как ref_1 ref_2 ref_3.. ref_6
Во первых погугли про nested sets, materialized path, во вторых как на счёт хранить кол-во рефералов у каждого юзера? В случае mp тебе что бы найти свободное место достаточно будет поискать в базе типа: WHERE referals_count < 3 and materialized_path LIKE "1.2.6.9...%"

Антон
21.05.2018
06:52:39
мне тоже кажется что тут одно из nested sets, materialized path

Sergey
21.05.2018
07:00:22
в остальных случаях комбинация adjacency list + materialized path (для сортировки) является довольно универсальным решением.

Google

Sergey
21.05.2018
07:02:11
что до реферелов - в mysql вариантов не много, а в postgresql можно было бы хранить цепочку в jsonb и не париться
p.s. mysql 8 поддверживает рекурсивные запросы, так что можно многие вещи проще делать.
но если количество рефералов не ограничено - я бы предпочел хранить их вообще в отдельной СУБД (типа neo4j).... хотя если пользователей пара тысяч то пофигу конечно

DK
21.05.2018
07:10:23
когда создавал подобное дерево уже советовали 3 метода хранения. После долгого чтения информации в итернете ничего лучше чем хранить у пользователя предыдущие его 6 уровней не нашел.

Sergey
21.05.2018
07:11:55
то есть в целом в 90% случаев рефералку можно хранить просто как jsonb массив айдишек

InvestPerson
21.05.2018
08:48:12
Ребят пишу бот telegram на php, такая проблема с реферальной ссылкой.
Кидаю другому юзеру, только спустя 30 секунд бот ему отвечает и вылазиет меню если писать просто команду /start то все быстро а если с рефералки кидать такая шняга
Уже все просмотрел вроде все нормально
А проблема не уходит(

Яўген
21.05.2018
08:57:30
кто-нибудь знает группу, где бы бигдату обсуждали?

Виктор
21.05.2018
09:01:29
https://t.me/hadoopdev

Яўген
21.05.2018
09:04:34
спасибо. Они чисто на Hadoop заточены?

Victor
21.05.2018
09:47:03
Ребзя, небольшой офтоп. Такой вопрос, как правильнее делать если работать с контейнерами.
Один контейнер с MySQL и там базы под сервисы. Или для каждого сервиса свой контейнер с MySQL

Константин
21.05.2018
09:51:36
Глянь laradock
Можно прям его и взять

Bohdan
21.05.2018
09:52:28
ну имхо это перебор
разве как основу брать, и потом вычищать лишнее
по топику вопроса - зависит от того, что разрабатываешь

Константин
21.05.2018
09:52:56
Да я про то и говорю

Bohdan
21.05.2018
09:53:19
если у тебя в контексте одного проекта много сервисов, работающих с базой - пускай один контейнер для базы

Google

Bohdan
21.05.2018
09:53:31
если в разных проектах - тогда держи по контейнеру на каждую базу каждого проекта

Константин
21.05.2018
09:53:34
Взять за основу и сделать кучу баз, если так требуется

Bohdan
21.05.2018
09:54:02

Константин
21.05.2018
09:54:32
С точки зрения безопасности может стоит много контейнеров иметь

Bohdan
21.05.2018
09:54:47

Константин
21.05.2018
09:55:22
Доступ к одной базе не даёт доступ к остальным

Bohdan
21.05.2018
09:55:54
да дело даже не в этом, просто для деплоя ты ведь не будешь все наружу выкладывать (все базы)
разве что если у тебя локальная разработка и больше докер нигде не применяется.... но имхо все равно оверхед + с docker-compose возиться придется

Admin
ERROR: S client not available

Константин
21.05.2018
09:56:51
Тут на любителя

Bohdan
21.05.2018
09:57:04
много контейнеров с базами кушать не просят, тем более, если это одна и та же СУБД той же версии - даже место будет только на данные тратиться

Константин
21.05.2018
09:58:59
Не пойму о чем ты)
Данные ведь не в контейнере хранятся. Деплоить придется только docker-compose. Копипастом можно любое количество баз сделать и соединить их как душе угодно
Сборку можно простым скриптом сделать сборкой контейнеров. Обновление тоже толпой в любое время
Если решит сервис выкинуть на другой сервер, то легко будет взять с собой только один инстанс базы

Bohdan
21.05.2018
10:08:10
но зачем, если можно просто поднять N контейнеров и не любить себе мозги?)
ну и обозначать контейнер с базой как-то придётся для композа

Samat
21.05.2018
11:40:04
ребят, посоветуйте, какую дату поставить значению "активен до", если нужно указать "навсегда"?
в mysql

Alexandr
21.05.2018
11:40:49

Google

Samat
21.05.2018
11:41:29

Alexandr
21.05.2018
11:41:56

Samat
21.05.2018
11:43:07
ну ок, null норм
а есть другие варианты? какая-то точка во времени, которую вряд ли будут использовать. максимальное значение timestamp, может быть?

Alexandr
21.05.2018
11:43:40

Dmitry
21.05.2018
11:43:59
Че вам null не угодил, зачем ищите экстремальные значения?

Samat
21.05.2018
11:46:26
запрос вытягивания этих записей уже очень сложный. если бы можно было вытягивать простым сравнением < или >, мне бы упростило работу очень. сейчас же везде придется ставить OR .. IS NULL

Bohdan
21.05.2018
11:50:41

Alexandr
21.05.2018
11:50:49

Dmitry
21.05.2018
11:50:59
или 1970-01-01 01:00:00 наборот

Виктор
21.05.2018
11:51:33
Нужно больше костылей)

Evgeniy
21.05.2018
12:52:13
текущий год + 100 лет
ну храни активных бесконеночно в специальном месте в виде списка

Samat
21.05.2018
12:53:38
да я думал есть какой-то общепринятый костыль хд

Evgeniy
21.05.2018
12:54:04
ну если хочешь без костылей

Sergey
21.05.2018
12:54:14

Evgeniy
21.05.2018
12:54:14
то заведи поле специальное пользователю
типо активен бесконеночно начиная с даты

Sergey
21.05.2018
12:54:44
либо у тебя "активен до" это составное значение из двух полей