On 24/08/10 1:06 AM, Robert Zeigler wrote:
Main Entity -> Map relationship of value entities. Each value entity has a to-one relationship to the attribute descriptor table. One thing you might consider doing in your attribute descriptor table is to make the "type" be a java enum;
There is (was?) an issue in Cayenne with using enum as an entity discriminator (that it, as the way to create Cayenne inheritance). So if your model ends up with inheritance based on this field, make sure it is string or int. So, say you have this db structure: Attribute - id - name AttributeValue - attribute_id - value - entity Then you could map that with inheritance like this: AttributeValue (superclass) attr: attribute_id attr: value attr: entity (used as discriminator) PaintingAttributeValue (subclass) relation:-> Painting ArtistAttributeValue (subclass) relation: -> Artist Naturally you'd add to your Attribute table all sorts of validation definitions. You might want to restrict values to be numerical (but you are still storing them in the db as blob or string). Or restrict the entry length. Cheers Ari -- --------------------------> Aristedes Maniatis GPG fingerprint CBFB 84B4 738D 4E87 5E5C 5EFA EF6A 7D2E 3E49 102A
