Case Study Detail

ObjectOrderItem, a Detail component, is added to the the Instance, ObjectOrder, as a child, since "an order has many Items". There is no need to describe the number of line item occurrences in this model, because the ObjectOrder will be able to accommodate any number of line items from one to infinity. If there are three products purchased, SQL will return a view containing three rows. If there are one hundred, SQL will return one hundred rows. The unanswerable question, "what's the greatest number of line items you can ever have on an Order?" never needs to be asked.

It should be noted that the data OrderItemTotal is not stored in the Detail component since it can be calculated from other data in the component. This is not a rule, but a preference. If you are comfortable storing derived data, do so.