Если ваш проект предпологает большую нагрузку, я бы рекоммендовал использовать триггерную логику реализации (этот пожалуй один из немногих случаев, когда бизнес-логику приложения, действительно имеет смысл ложить в БД).
Для начала поймите, по какой формуле будет считаться ваш рейтинг. Скажем в этой формуле будет 5 составляющих. Формула несложная и ее можно считать на лету (хотя тут тоже можно заставить делать пересчет по триггеру, это правильный вариант).
Пользователь добавляет фотографию — составляющая формулы (поле в БД) инкрементируется, дергается триггер — пересчитывается общий результат. Пользователь оценил чью то фотографию (написал комментарий etc) — та же логика, но другое поле.
Для начала определились, по каким критериям вы будете рассчитывать конечные цифры, логически разбейте составляющие на модули (которые есть у вас в системе) и определите формулу. Это пожалуй наиболее сложная задача