2011-05-18 3 views
1

В моем приложении Rails 3 пользователи могут писать сообщения/сообщения в форуме.Как реализовать таблицу «топ-писателей» в Rails?

Я хотел бы показать пользователям «Top Пишет» стол, что-то вроде:

Alex - 14% (i.e. 14% of forum's content was written by Alex) 
Greg - 13% 
Natalie - 10% 
Rachel - 8% 
... 
  1. Вы бы сохранить количество символов (возможно, за исключением знаков) в каждом сообщении в базе данных вместе с другие данные сообщения (и обновить его при редактировании сообщения)?

  2. Вы сохранили бы количество символов, которые каждый пользователь написал вместе с другими данными пользователя (и обновите этот номер после того, как пользователь добавит/удалит/обновит сообщение)?

  3. ли вы хранить общее количество символов в базе данных (то есть сумма всех чисел от 2.?

  4. Вы бы сохранить проценты, которые будут отображаться (и обновлять их соответственно)?

+0

Что является основным параметром вы хотите оптимизировать? Представление? Точность номера? Динамика значений (т. Е. Ежедневно обновляется и обновляется каждую секунду). – berkes

+0

@berkes: Главным образом производительность. –

ответ

5

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

Для вашего конкретного вопроса:

  1. Добавить столбцы на каждом сообщении: Content-Length
  2. Добавить столбец на каждом Пользователе: общий-контент длина
  3. При сохранении нового сообщения, recaculate полного содержания -длина для пользователя (сумма всех message.content длины)

базировался таблица процента в этой точке достаточно просто

Смежные вопросы