Мне нужно реализовать подбор фоток анкет в своем боте.
Как я реализовал: создал таблицу 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 , мне нужно чтобы юзер видел именно фотки те, которые он до этого не видел.
Что думаете на этот счёт? (Реализовываю типо знакомства, перелистывание-анкет)
Хранить просмотреные фотки как список id не делая новую запись. Я в бд не слишком понимаю в плане доставать теперь больше букв, но записей меньше.
А может пускай просто повторно прилетают фотки? Не баг, а фича. Вдруг пользователь не рассмотрел или случайно далее нажал
Обсуждают сегодня