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

Опытные ребята, подскажите пожалуйста есть таблица юзеров и таблица интересы (m2m)



задача сортировать юзеров по количеству совпадений интересов

для юзера Миша, остортировать остальных юзеров по количеству совпадающих интересов

это возможно решить силами постгресс нормально или лучше взять что то другое?

9 ответов

24 просмотра

" количеству совпадений интересов" - интересы всех юзеров со всеми юзерами? Т.е. надо сравнивать каждый с каждым? Обычно SQL такого не любит и запросы такие выполняются достаточно долго и требуют много памяти. Но сделать реально.

Stan-Осычнюк Автор вопроса
v8usr
" количеству совпадений интересов" - интересы всех...

так и есть да, я реализовал это уже, но думаю что если юзеров будет более 100к то начнуться проблемы и партицирование тут вряд ли поможет(( в постгресс 9 существовал экстеншн для такого ордеринга, но как я понял он не поддерживается и его особо нигде уже и нет потому вот такой вопрос задаю) эластик лучше попробовать?

Stan Осычнюк
так и есть да, я реализовал это уже, но думаю что ...

По сути задача сводится к созданию уникальных ХЭШей групп (уникальных наборов интересов) и определение пользователей в эти группы, затем просто сортируешь по группе с самым большим количеством интересов или пользователей в группе.

Stan-Осычнюк Автор вопроса
v8usr
По сути задача сводится к созданию уникальных ХЭШе...

не совсем понятно на самом деле юзер 1 - интересы 1, 12, 24 юзер 2 - интересы 1 юзера 3 - интересы 1, 24 хеши будут разные, группа одна как по этим хешам будет проводится сравнивание того что выше в поиске?

Stan-Осычнюк Автор вопроса

так и есть да, я реализовал это уже, но думаю что если юзеров будет более 100к то начнуться проблемы и партицирование тут вряд ли поможет((

Stan Осычнюк
так и есть да, я реализовал это уже, но думаю что ...

Тогда начни группировать не от пользователя от от группы. Просто посчитай сколько пользователей в каждой группе. Отсортируй группы по количеству пользователей.

Stan Осычнюк
так и есть да, я реализовал это уже, но думаю что ...

значит вам надо сохранять эту информацию в отдельную таблицу при изменении пользователя, а не вычислять на лету

Stan Осычнюк
всех для всех?

по которой можно будет сделать нужный вам order by по индексу

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта