Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Логика "случайной" выдачи фотографии

CausonQ Мудрец (13341), на голосовании 1 год назад
Какую сделать логику выдачи фотографий на голосование?
Есть база фотографий 300+, которая постоянно пополняется. Есть голосующие пользователи, число которых меняется как большую, так и в меньшую сторону.
Сейчас логика выдачи фото: в первую очередь пользователю показывается фото с наименьшим количество голосов. Ввиду того, что количество фотографий увеличивается, а пользователи голосуют только за какую-то часть, то старые фотографии, получается, что в голосовании и не участвуют, до них дело дойдет только когда количество голосов сравняется по всем фото, а ввиду того, что их становится больше, то получается замкнутый круг
Голосование за лучший ответ
Татьяна Просветленный (36374) 1 год назад
Для решений прпроблемы замкнутого круга в голосовании можноизменить логику выдачи фотографий. Вместо того, чтобыпоказать фото с наименьшим коломиством голосов, можноиспользовать случайный выбор фотографии из базыы данные. Это позволит расширить расограничить голоса мжду всеми фотографиями идать даже шанс старым фотографиям учачать в голосование.
Для реализация случайного выбора фотографии можноиспользовать функции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; 
В этом запросе вы выбираете одну случайную фотографию из таблицы «фото», которая еще не участвовала в голосовании (то есть ее идентификатор отсутствует в таблице «голоса»).
Таким образом, использование случайного выбора фотографий позволит распределить голоса между всеми фотографиями и дать шанс даже старым фотографиям принять участие в голосовании.
CausonQМудрец (13341) 1 год назад
В этом случае также возникает проблема с перекосом голосов - какие-то фотографии вообще могут провисеть долгое время без голосов. Из-за это и была изменена логика выдачи фотографий начиная с наименьшего количества
Ирина Панова Мастер (2167) 1 год назад
"логика" - наука о законах,формах и приёмах интеллектуальной деятельности.
и как это связано с выдачей фотографий - не ясно.
возможно,имеет смысл точнее сформулировать свой вопрос?
т.к не понятно что же Вы хотели узнать.
CausonQМудрец (13341) 1 год назад
К примеру логика алгоритма, логика sql запросов вам ни о чем не говорит?
Если вы не смогли понять сути моего вопроса, то не стоит в него лезть, он не для вас
Dlazder Мудрец (16877) 1 год назад
А почему бы просто полный рандом не сделать?
Похожие вопросы