хранить рейтинг можно в два этапа. Допустим голосовать можно один раз в день за любое количество постов. Тогда вам нужно две таблички:
1. Табличка с дневными данными, и соответствующая ей модель(DayVote).
.----------------------------------------------------------------------------------------
| ID_ПОЛЬЗОВАТЕЛЯ | ID_ПОСТА | ОЦЕНКА | ПОСМОТРЕЛ_РЕЗУЛЬТАТ |
-----------------------------------------------------------------------------------------.
2. Табличка с агрегированными данными и соответствующая ей модель(PostVote):
.----------------------------
| ID_ПОСТА | ОЦЕНКА |
-----------------------------.
Эта табличка должна заполняться по крону автоматом 1 раз в сутки, собирая и агрегируя данные из DayVote, после чего DayVote нужно очистить.
Приимущества такого подхода:
1. Максимальное количество записей в таблицах будет равно количеству постов+ количеству проголосовавших за сегодня. А это гораздо меньше чем
...
Читать дальше »