Based on the Max Ross I/O video on Persistence, I understand the best
practice regarding handling of Master/Detail relations is to place
redundant Master data in the Detail row.  Same would apply to any type
of relation (1-to-1, 1-to-many).

So for example if I have an entity Person relating as 1-to-many with
another entity Address, then instead of just a simple FK like
Address.personId I am supposed to also include redundant fields like
Address.lastName, Address.firstName and so on depending on how I
display/process on Address data in the app.  Therefore, when reading
Address data I would NOT necessarily have to perform another read to
the Master just to get LastName/FirstName, etc.

The problem is if I have 10 such relations with Person and JDO does
NOT allow me to declare an object we'll call PersonFK containing these
fields (personId, lastName, firstName, etc), then we quickly have a
code maintenance nightmare for our app since any significant app can
have 100's of FKs to manage and all these fields will NOT be coded in
an Object Oriented sense.

So in my example, if I have to add another redundant field for Person
FKs such as SSN or change behavior of any existing one of these
redundant fields for Person, then I have at least 10 touchpoints in
the app to deal with, where good OO design mandates I should only have
1 touchpoint.

Is this true or have I overlooked a feature in GAE JDO implementation
that is NOT mentioned in the GAE docs?

The closest concept indicated in the GAE docs are the Embedded Classes
which only apply to 1 Entity...so they are quite useless from an OO
perspective across many objects.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to google-appengine-java@googlegroups.com
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to