Допустим, у меня есть Posts
и Comments
для приложения для блога, использующего Rails и MySQL.
Я хочу ранжировать сообщения по количеству комментариев. (Примечание: не просто сортировать, а получить фактический 1-й, 2-й, 3-й ранг).
Кроме того, учитывая сообщение, я хочу иметь возможность получить его рейтинг, не загружая все сообщения в Rails и не просматривая их.
например «Этот пост занимает 372-е место по количеству комментариев»
Наконец, если у двух постов одинаковое количество комментариев, они должны иметь одинаковый рейтинг — так что ничья в порядке.
Я нашел несколько умных решений для этого в MySQL, таких как этот пост: in-mysql">Как справиться с совпадениями при ранжировании результатов в MySQL?
Мне интересно, есть ли более простое решение путем нормализации некоторых данных в дополнительном поле в таблице сообщений.
Кто-нибудь видел хороший подход для этого?