Size: a a a

2020 February 27

P

Pavel in pro.elixir
Ilya Ladygin
Я не описал всю задачу, это мой косяк.Кратко:
список пользователей  -> по рекурсии проходимся по нему и формируем пары, которых не было -> создаём встречу
Тоесть у нас есть [1,2,3] а на выходе мы должны получить [1,2], [1,3] и [2,3] так?
источник

P

Pavel in pro.elixir
Просто будут ли обратные пары возможны, и так далее
источник

m

madeinussr in pro.elixir
Pavel
Ну мне кажется человека стоит спросить о том, что его задача как-бы имеет более простое решение, а выходит, что он там городит свой индекс
соглашусь
источник

ВА

Верховный Архитектор in pro.elixir
Pavel
Если в проект можно затащить oAuth с каким-нибудь гуглом - это же решает все проблемы
Не спорю, посыл был в том, что человек жаловался на не такой богатый список депенденси как в рельсе гемов, где на каждый чих есть гем, а в фениксе примитивные вещи легче сделать самому
источник

P

Pavel in pro.elixir
Верховный Архитектор
Не спорю, посыл был в том, что человек жаловался на не такой богатый список депенденси как в рельсе гемов, где на каждый чих есть гем, а в фениксе примитивные вещи легче сделать самому
Ну человек жаловался то правильно, больше пакетов, чем для рубей, скорее всего только для Node.js, с его козырным left_pad. Вопрос не в количестве, а как всегда в качестве/статусе заброшенности/необходимости.
источник

P

Pavel in pro.elixir
madeinussr
соглашусь
Тут просто уже поднимался вопрос с on_conflict: :nothing и ощущение, что иногда люди просто не знают, об ON DUPLICATE KEY IGNORE, возможно потому, что многие из них БД как коробку просто воспринимают.
источник

m

madeinussr in pro.elixir
быть может, я далеко не всегда читаю все сообщения
источник

IL

Ilya Ladygin in pro.elixir
Встречи генерируются каждый день, пересечений между тем кто уже встречался быть не должно
[1, 2, 3]  > [1, 2] сгенерирована встреча между 1,2
Следующий день встреча между 1,3
Следующий 2,3
И так далее
источник

IL

Ilya Ladygin in pro.elixir
Подсказанные вариант подходит)
источник

IL

Ilya Ladygin in pro.elixir
Требуется, что бы они генерировались в фоне. не очень понятно - заранее как-то хочется знать все пары?

Навскидку:
слепить из двух id тупл {user_id1, user_id2} и использовать как ключ в мапе вида %{{:a, :b} => true, {:d, :e} => true}
мапу положить в ets/генсервер

я бы, наверное, в генсервер/агент сунул
потом спрашиваешь у агента: есть такой тупл?
он отвечает результатом вроде your_map[{user_id1, user_id2}] == true
если вернул true - есть такая пара
источник

IL

Ilya Ladygin in pro.elixir
конечно, все это летит после релиза :) и заполнять надо заново
источник

IL

Ilya Ladygin in pro.elixir
ну и первоначально заполнить мапу все-таки надо
или лениво (1 раз идешь в БД - результат в мапу) или при пуске приложения все пары выгрести из БД, потом лениво или по мере создания юзеров
источник

R

Rustem in pro.elixir
Индекс уникальности. Предложенный вариант выглядит как сортировка несортированной выборки из базы.
источник

IL

Ilya Ladygin in pro.elixir
у меня используется составной уникальный индекс
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Я бы сделал вот так:

http://sqlfiddle.com/#!9/094094/1/0
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Раз в день можно себе такое позволить
источник

ŹR

Źmićer Rubinštejn in pro.elixir
А может и нельзя
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Но для начала я бы все равно такое сделал
источник

IL

Ilya Ladygin in pro.elixir
Запрос прикольный, но мне не надо получать все возможные комбинации встреч)
источник

IL

Ilya Ladygin in pro.elixir
Пока, остановился на матчинге)
источник