You're not understanding the design. The EntitySubtype entity implements entity subtypes only, it does not replace all *Type entities. There are *Type entities in the DMRB that are not related to entity subtypes - so those will remain unchanged.

The ProductType entity implements Product subtypes, so it would be replaced with the EntitySubtype entity.

-Adrian

On 10/8/2012 6:23 AM, Jacopo Cappellato wrote:
Well, no I didn't.

If I understand your design, you are proposing to keep the ProductType entity 
and add a generic EntitySubtype entity for *subtypes*; the pattern described in 
the EntitySubtype is similar to the one proposed by David for the *Type 
entities.
Keeping the existing pattern for Type entities and adding the new one for the 
subtypes in my opinion is ugly and confusing, this is the main reason I don't 
like it.

Jacopo




On Oct 6, 2012, at 7:19 PM, Adrian Crum wrote:

So your opinion has changed...

http://mail-archives.apache.org/mod_mbox/ofbiz-dev/201103.mbox/%3c82330f5c-3938-487e-98ae-ffee0c876...@hotwaxmedia.com%3E

-Adrian


On 10/5/2012 10:23 AM, Jacopo Cappellato wrote:
HelloAdrian,

in my opinion it would be better to leave the data model as is, but improve the 
descriptions of the types (and documentation, in the form of comments to xml 
data) and also enhnce our utils to deal with types (the Product already has 
something in place).

Regards,

Jacopo

On Oct 1, 2012, at 8:14 AM, Adrian Crum wrote:

I mentioned this once before as part of another discussion, but I'm creating a 
new discussion so it can receive the attention it deserves.

The Data Model Resource Book describes entity subtypes. OFBiz implements entity 
subtypes by adding a field to the supertype that points to a *Type entity that 
contains valid subtypes.

The problem is users (and some developers) do not understand that pattern, and 
they add invalid subtypes to the *Type entity. That can cause things to break. 
As an example, I have a client who created additional ProductTypes (that 
actually represented product categories) and used those added ProductTypes for 
their products. Then they were puzzled why their order fulfillment process 
stopped working.

I think what we need is an EntitySubtype entity to store the subtype data. 
Instead of multiple *Type entities, we would have a single EntitySubtype 
entity, and the supertypes will point to it. The supertype field could be 
called something like entitySubtypeId. The EntitySubtype entity will be clearly 
documented as to its purpose and proper use.

EntitySubtype
-------------
entityName*
entitySubtypeId*
description

What do you think?

-Adrian


Reply via email to