Для решений прпроблемы замкнутого круга в голосовании можноизменить логику выдачи фотографий. Вместо того, чтобыпоказать фото с наименьшим коломиством голосов, можноиспользовать случайный выбор фотографии из базыы данные. Это позволит расширить расограничить голоса мжду всеми фотографиями идать даже шанс старым фотографиям учачать в голосование.
Для реализация случайного выбора фотографии можноиспользовать функцииRAND() в SQL. Например, запросна выбор случайной фотографии могутвыглядеть так:
SELECT * FROM photos ORDER BY RAND() LIMIT 1;
Этот запрос выберет одну случайную фотографию из таблицы "фотографии".
Также можно добавить условие, чтобы были выбраны только те фотографии, которые еще не участвовали в голосовании. Для этого можно создать дополнительную таблицу «голосов», в которой будут храниться записи о голосах пользователей. Например, запрос на выбор случайной фотографии, которая еще не участвовала в голосовании, может выглядеть так:
SELECT * FROM photos WHERE id NOT IN (SELECT photo_id FROM votes) ORDER BY RAND() LIMIT 1;
В этом запросе вы выбираете одну случайную фотографию из таблицы «фото», которая еще не участвовала в голосовании (то есть ее идентификатор отсутствует в таблице «голоса»).
Таким образом, использование случайного выбора фотографий позволит распределить голоса между всеми фотографиями и дать шанс даже старым фотографиям принять участие в голосовании.
Есть база фотографий 300+, которая постоянно пополняется. Есть голосующие пользователи, число которых меняется как большую, так и в меньшую сторону.
Сейчас логика выдачи фото: в первую очередь пользователю показывается фото с наименьшим количество голосов. Ввиду того, что количество фотографий увеличивается, а пользователи голосуют только за какую-то часть, то старые фотографии, получается, что в голосовании и не участвуют, до них дело дойдет только когда количество голосов сравняется по всем фото, а ввиду того, что их становится больше, то получается замкнутый круг