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.
on 2009-01-12 02:00
on 2009-01-12 02:40
You could just keep it in memory if accuracy isn't very important. On Sun, Jan 11, 2009 at 7:00 PM, Mohammad A. <
on 2009-01-12 02:42
I think I might look into this http://playtype.net/past/2008/2/6/starling_and_asy...
on 2009-01-12 16:17
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. <email@example.com>
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.