Hi! I hope someone can offer some insight or direction into a problem
I’m having.
In my application, I have two tables: products and reviews.
- Products stores information on things that are sold
- Reviews store comments from users that purchased the product, as well
as boolean field about if they would purchase again.
The models are setup so that products has_many reviews and reviews
belong_to their respective products.
So my question is this:
How can I structure a query so that I can order products based on the
number of people who would purchase it again?
It’d be alot easier for me, and probably my server, if I just kept a
running count of those in the actual product record, but I’m trying to
keep it dynamic so that I can create custom reviewer sets elsewhere.
Thanks in advance for any direction.
easiest and fastest way is to keep number of reviews in column in
product table… then simple add :order => ‘reviews_count desc’ in your
Product.find()
tom
Robert S. wrote:
belong_to their respective products.
So my question is this:
How can I structure a query so that I can order products based on the
number of people who would purchase it again?
It’d be alot easier for me, and probably my server, if I just kept a
running count of those in the actual product record, but I’m trying to
keep it dynamic so that I can create custom reviewer sets elsewhere.
Thanks in advance for any direction.
–
Tomas Meinlschmidt, MS {MCT, MCP+I, MCSE, AER}, NetApp Filer/NetCache
Right, but that approach also means that I will be using all reviews for
all users.
The only reason I’m going through the hassle of trying to make it
dynamic is so that I could further segment the reviewers. So instead of
saying X reviewers would buy it again, I could get closer to X reviewers
in your age group would buy it again or X reviewers in your area, etc.
etc.
Tom Z Meinlschmidt wrote:
easiest and fastest way is to keep number of reviews in column in
product table… then simple add :order => ‘reviews_count desc’ in your
Product.find()
tom
Robert S. wrote:
belong_to their respective products.
So my question is this:
How can I structure a query so that I can order products based on the
number of people who would purchase it again?
It’d be alot easier for me, and probably my server, if I just kept a
running count of those in the actual product record, but I’m trying to
keep it dynamic so that I can create custom reviewer sets elsewhere.
Thanks in advance for any direction.
–
Tomas Meinlschmidt, MS {MCT, MCP+I, MCSE, AER}, NetApp Filer/NetCache
OK. so then you need to create your own queries with
Reviews.find_by_sql() and insert appropriate sql statement, eg
select product_id, count(*) as counter from reviews where age between
(10,20) and … order by 2 desc
tom
Robert S. wrote:
–
Tomas Meinlschmidt, MS {MCT, MCP+I, MCSE, AER}, NetApp Filer/NetCache
–
Tomas Meinlschmidt, MS {MCT, MCP+I, MCSE, AER}, NetApp Filer/NetCache
and don’t forget to add to reviews model:
belongs_to :product, :counter_cache => true
On Mar 13, 11:51 pm, Tom Z Meinlschmidt [email protected]