While looking into reorganizing the shopping cart -> order business
logic I thought I'd take a look at the data model for the order
entities to get better acquainted with some of the specialized features
that get tucked away over the months.  I came across a few things that
are appear on their surface to be inconsistent or that might be
reintroduced a bit more generically. I want to make clear that I'm not
suggesting we break out the demolition crew just reorganize our thought
processes and identify where we may want begin some incremental
changes.  I have the org.ofbiz.order.* packages in separate pages of a
visio file and will export them to images and attach to a JIRA issue if
it's determined that we want to act on any of these peculiarities. 
Otherwise I will attach them to docs.ofbiz.org for the benefit of those
that learn better by pictures.

The following appear as if they could be reintroduced as orderTypes
with additional tables for their unique fields
order.request
order.quote
order.return

The remainder will be broken up by package then entity with a short
note

order.order

OrderDeliverySchedule - should this be related to a package or
something else in shipping or is this just a strangely denormalized
entity?

OrderHeaderWorkEffort - redundant with OrderItemWorkEffort with
OrderItemSeqId = null

OrderSummaryEntry - denormalized information, very app specific?

OrderItemAssociation - There are probably other order associations that
would be beneficial aside from PO <-> SO.  Was this done to accommodate
the drop shipping improvements?

ProductOrderItem - Looks to be identical to OrderItemAssociation except
not specific to PO <-> SO with a redundant productId field

OrderAdjustment - Could be broken up with subcategory tables

OrderItemShipGroupAssoc-
OrderItemShipGrpInvRes-
OrderShipment-
OrderItemShipGroup- all of these have a field shipGroupSeqId. Should
this be shipGroupId?

OrderItemContactMech - replaced by OrderContactMech?

OrderRole - redundant with OrderItemRole with orderItemSeqId = null

OrderNotification - more consistent as CommunicationEventOrder or
redundant with it?

OrderHeaderNote - needs orderItemSeqId field

order.quote

QuoteCoefficient - Looks an awful lot like QuoteAttribute

order.request

CustRequestWorkEffort - redundant with CustRequestItemWorkEffort where
custRequestItemSeqId = null 

CustRequestNote - needs custRequestItemSeqId field

CustRequestRole - needs custRequestItemSeqId field

CustRequestCommEvent - needs custRequestItemSeqId field

CustRequestStatus - needs custRequestItemSeqId field

order.requirement

RequirementAttribute - statusId present at all much less as PK?

RequirementBudgetAllocation -  statusId present at all much less as PK?

OrderRequirementCommitment - statusId present at all much less as PK?

RequirementRole - statusId present at all much less as PK?

RequirementCustRequest - statusId present at all much less as PK?

WorkEffortFulfillment - statusId present at all much less as PK?

RespondingParty - should be in order.request, patch already in JIRA

DesiredFeature - statusId present at all much less as PK?,
desiredFeatureId needs to be lone PK field

Thanks for any feedback!

Chris

Reply via email to