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 >>> >