Hi,
I know this might just me being being crazy, but I'm having a lot of
problems following your description. It's, unfortunately, the limitations of
my human mind at work. Do you mind describing your question in terms of your
problem domain? It'd be easier to wrap my brain around more concrete terms
(Person, Group, Order, etc) rather than abstract letters (I suspect that's
the reason no one has answered your question, because it's too hard to
read).
On Thu, Feb 4, 2010 at 3:35 AM, markvgti wrote:
> Each user U, has 0 or more children data entities corresponding to
> days D.
>
> Each day D has 0 or more children data entities of types X, Y and Z.
>
> Is it better to associate items X, Y and Z with an entity of type D
> by:
>
> 1. creating a collection each of X, Y and Z data entities inside
> entity D (e.g., private List childrenOfTypeY;), or by
>
> 2. storing X, Y and Z by generating their Key values such that it
> contains the parent entity D's key (e.g., Key k = new
> KeyFactory.Builder(D.class.getSimpleName(),
> "BlahBlahBlah").addChild(X.class.getSimpleName(),
> "YadaYadaYada").getKey();).
>
> My primary concern is which type of data design will be better
> resource/time consumption-wise (i.e., which way is "lighter"). AFAIK,
> method 1 gives me automatic consistency, method 2 gives me
> flexibility.
>
> In method 1, when I fetch an entity of type D, are all children
> entities of types X, Y & Z fetched in one go, or lazily (w/o
> programmatic intervention) on an as-required basis? In method 2
> fetching the children is of course up to me.
>
> Other characteristics of my application:
>
> * As far as writing is concerned, it is more likely that individual
> children of an entity of type D will be written to.
>
> * As far as reading from the datastore is concerned, it is more likely
> that all children of 1 or more entities of type D will need to be
> fetched to satisfy a single request.
>
> * Once an entity of type D is created, it and its children are
> unlikely to be deleted, though entities of type X, Y and Z (for a
> given entity D) may be individually modified.
>
> * Data consistency is obviously of concern, but since data deletion is
> infrequent, app-managed consistency shouldn't be too hard. Plus, a
> cleanup Task can delete orphan X, Y, Z objects (should that happen).
>
> If it matters, I am using Java.
>
> If the above explanation is too opaque :-) or I have posted to the
> wrong group, please let me know.
>
> Thanks!
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To post to this group, send email to google-appeng...@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine+unsubscr...@googlegroups.com
> .
> For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
>
>
--
Ikai Lan
Developer Programs Engineer, Google App Engine
http://googleappengine.blogspot.com | http://twitter.com/app_engine
--
You received this message because you are subscribed to the Google Groups
"Google App Engine" group.
To post to this group, send email to google-appeng...@googlegroups.com.
To unsubscribe from this group, send email to
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/google-appengine?hl=en.