[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: рейтинг фотографий в галерее
Rem
для подсчета рейтинга фотографий я создал БД, в которой хранится id фото, за которую голосовали, id пользователя, который голосовал, и балл, который он поставил. и мне захотелось сделать общий рейтинг. вывести средний балл для каждой фотографии отдельно не составило труда, а вот чтобы отсортировать это дело по "популярности" - самый высокий средний балл наверху, далее по неубыванию - здесь возникли вопросы. хотел завести доп. БД, где бы хранилось уже вычисленное значение рейтинга, но возник вопрос - целесообразно ли это? и если да - то как лучше сделать?

жду ваших ответов. с уважением.



Спустя 20 минут, 59 секунд (27.12.2008 - 23:43) sergeiss написал(а):
Судя по вопросу, автор совсем уж "на Вы" с БД.
Для начала покажи, плз, структуру своей БД, и то, что ты уже выводишь (точнее, КАК это делаешь, какими запросами).

А вообще, надо использовать в селекте сортировку по ORDER BY.

Спустя 8 минут, 57 секунд (27.12.2008 - 23:52) Rem написал(а):
Цитата

Для начала покажи, плз, структуру своей БД

в ней хранится id фото, за которую голосовали, id пользователя, который голосовал, и балл, который он поставил. названия у них photo_id, user_id и rating соответственно. мне нужно посчитать средний балл для каждой из них и вывести его по неубыванию.
Цитата
А вообще, надо использовать в селекте сортировку по ORDER BY.

это я знаю. вопрос в том - как реализовать вывод фотографий по неубыванию среднего балла. создавать отдельную таблицу, в которой будет храниться средний балл каждой фото и обновлять его каждый раз, когда будет получен голос - не очень хорошая идея имхо.

Спустя 16 минут, 16 секунд (28.12.2008 - 00:08) sergeiss написал(а):
Зачем создавать отдельную таблицу? Я думаю, более чем достаточно будет считать его каждый раз. Сначала делаем выборку всех фот_айди и среднего балла (с группировкой по айди), а затем сортируем всё это:

SELECT photo_id, avg(rating) as avg_rating
from your_table_with_photo
group by photo_id
order by avg_rating

PS. А "идея" создавать отдельную таблицу для среднего балла не то, что "не очень хорошая", а вообще плохая!!!

Спустя 2 минуты, 8 секунд (28.12.2008 - 00:10) Rem* написал(а):
avg - функция расчёта среднего балла?

Спустя 2 минуты, 42 секунды (28.12.2008 - 00:13) sergeiss написал(а):
Цитата (Rem* @ 28.12.2008 - 00:10)
avg - функция расчёта среднего балла?

Не среднего балла, а средней величины... См. хэлп для более детального описания! Ищи в функциях для SQL.

Спустя 1 минута, 42 секунды (28.12.2008 - 00:14) Rem* написал(а):
Спасибо. Буду знать smile.gif

Спустя 8 часов, 20 минут, 3 секунды (28.12.2008 - 08:35) Sylex написал(а):
Наиболее эффективным способом увеличения скорости аналитических вычислений при больших объемах (в конкретном случае) является предварительное выполнение наиболее трудоёмких
вычислений, связанных с агрегаций данных и хранение их в вспомогательных
(агрегатных) таблицах.

Без этого иногда не обойтись. Но не в данном случае:)


_____________
tesseract (10:09:16 1/06/2007)
к вопросу о вчерашних скриптостраданиях. Только что кодер знакомый прислал, нашёл в коде программы, написанной уволенным коллегой незадолго до ухода:
#define TRUE FALSE //счастливой отладки <ВЦ>
такого извращённого юмора ещё не встречал
Rouse_ (10:09:56 1/06/2007)
#define true ((rand() % 2) ? true : false) //с первым апреля
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.