2012-04-28 4 views
0

У меня есть модель модели и модель пользователя. Пользователь может следить за этой статьей, но не может ее отменить. Я хотел бы следить за новыми подписчиками за статью и получать ее, когда хочу ее запечатлеть. (Предположим, на данный момент это построение не является проблемой.)Сохранение ежедневных данных для модели в Rails

Я хочу, чтобы каждая статья имела список каждой даты с момента создания этой статьи. Так будет иметь:

article.newfollowers[1/1/2012] = 35 
article.newfollowers[2/1/2012] = 4 

Каждый раз, когда пользователь следует статье я бы

This.newfollowers[Date()]++ 

Очевиден сохранение таких данных означает, что каждая строка в базе данных статей имеет сто атрибутов (для каждой даты) ,

Как сохранить данные в модели статьи? Как объявить/определить такой атрибут?

+0

Кроме того, в Ruby нет '++'. –

+0

Это новая модель, кричащая здесь. Если вы не имеете дело с NoSQL DB, как MongoDB, то у вас может быть модель со сложными атрибутами вроде этого –

ответ

1

Если вам не нужно запрашивать даты непосредственно, взгляните на ActiveRecord::Store. Вам нужно будет использовать Rails 3.2.0 по крайней мере, но не позволит вам добавить столько столбцов.

Другим решением может быть использование Redis sorted set, используя метку даты в качестве оценки, и новые последователи в качестве значения.

+0

redis кажется хорошим масштабируемым вариантом для добавления более ежедневных атрибутов для модели. Я попробую и отчитаюсь. спасибо –

+0

У меня был хороший успех с драгоценным камнем [redis-objects] (https://github.com/nateware/redis-objects). Удачи! – x1a4

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