> I have a conundrum that I'm _sure_ someone else has already thought of
> and solved. How does one best handle the scenario of association
> object changes and data integrity?
>
> For example, if I have a standard ecommerce site that sells Products
> and people can have Orders and an Order has_many Products... then,
> what happens if Product #3 is part of Order #2 but at some point, the
> shop owner goes in and edits Product #3 to change it's description...
> or it's price... or marks it as "no longer for sale"? Now, Order #2 is
> referencing Product #3 via the association but the data in Product #3
> is no longer the right data for the Order?
>
> I can imagine a number of ways to handle this, but none of them seem
> ideal. I'm curious what people do in this type of (very?) common
> scenario.

Once a product is put into an order it becomes a "line item".  The  
line item has the sku, quantity and price at the time it was added.   
I'd also put in a description which would be the product name and you  
may as well associate it with the product, but don't ever look at the  
product's price -- just the line items price.

In the case where you want to delete a product, simply flag it as  
unavailable/old/expired/hidden or something instead.  That way you can  
still go see the original product from a given order if you wanted to.

-philip

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to