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

Привет , может у вас будут мысли на этот счёт.

Мне нужно реализовать подбор фоток анкет в своем боте.

Как я реализовал: создал таблицу History в которой держу связку id_человека_который_увидел_фотку , id_фотки_которую_он_увидел. , Далее sql запросом достаю фотку которую юзер ещё не видел, пример: ...WHERE photo_id NOT IN (select photo_id from History where user_id = id_юзера.(очевидно это не полный запрос, там есть ещё другие условия)
Далее юзер увидел фотку - нажал далее - в историю попало то что он увидел эту фотку .

Почему этот вариант мне кажется плохим: проводил тесты, 5к человек сгенерили 500к записей в History примерно за ~5 часов. И в минуту стабильно добавлялось по 1-3к записей . Я понимаю что если при таком мизерном кол-ве людей таблица Истории уже насчитывала полумиллиона записей, можно представить с какой скоростью будут выдаваться юзерам фотки при более приличном кол-ве юзеров.
Почему именно мне нужна таблица History , мне нужно чтобы юзер видел именно фотки те, которые он до этого не видел.

Что думаете на этот счёт? (Реализовываю типо знакомства, перелистывание-анкет)

2 ответов

15 просмотров

Хранить просмотреные фотки как список id не делая новую запись. Я в бд не слишком понимаю в плане доставать теперь больше букв, но записей меньше.

А может пускай просто повторно прилетают фотки? Не баг, а фича. Вдруг пользователь не рассмотрел или случайно далее нажал

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта