Forum: Ruby on Rails how to keep track of popular items

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Mohammad A. (Guest)
on 2009-01-12 02:00
I have a site which is basically a catalog of product about 30,000.00
products. What do you think is the best (in terms of performance) way to
keep track of the most popular products,a part from the idea of writing
web-server log parser.

I'm thinking of creating a model called 'product_view' which has
product_id & view_counter, and updating this table in product#show.
James E. (Guest)
on 2009-01-12 02:40
(Received via mailing list)
You could just keep it in memory if accuracy isn't very important.

On Sun, Jan 11, 2009 at 7:00 PM, Mohammad A. <
Mohammad A. (Guest)
on 2009-01-12 02:42
(Received via mailing list)
Sazima (Guest)
on 2009-01-12 16:17
(Received via mailing list)
Popular in terms of viewing or selling?

Why don't you keep a counter in the DB?

Cheers, Sazima

On Jan 11, 10:00 pm, Mohammad A. <removed_email_address@domain.invalid>
Robert W. (Guest)
on 2009-01-12 17:00
Mohammad A. wrote:
> I'm thinking of creating a model called 'product_view' which has
> product_id & view_counter, and updating this table in product#show.
This sounds like a fine plan, but does it provide any advantage over
simply adding a view_count attribute to your product model?

In either case you must update the database on every product view.
Putting the column right on the product model seems to be a simpler
solution to me. This way you don't have to mess with any model
associations.

Having a separate table to store your counts would, technically, be a
more efficient use of disk space. But, as you said you expect around
30,000 products. This is a pretty small number in the grand scheme of
things so I wouldn't be worried much about the extra space one more
integer column would take. Certainly not enough to warrant the addition
of a separate model.
This topic is locked and can not be replied to.