Задать вопрос
Профиль пользователя заблокирован сроком «навсегда» без указания причины
  • Как спроектировать модуль звездного рейтинга для списка новостей, постов в блог и т.д. по аналогии к лайкам соцсетей?

    deleted-Mons
    @deleted-Mons
    Я делал таким образом.
    У меня есть 5 звездочек, то есть пять оценок от 1 до 5 балов. Генерируются JS в базе значения хранить нет смысла. Просто в нужном месте выводится и все.

    При голосовании в базу пишется оценка. Указывается кто голосовал (у меня это критично), ID статьи или поста или еще чего то, когда и тип голоса. Соответственно примерно пост тип 1, новость тип 2 и пр. Это позволяет хранить все голоса 1 таблице.

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

    Самое сложное тут было правильно высчитывать рейтинг.
    Ответ написан
    Комментировать