Hi Luís,

If you have a "User" model, with a "items" heavy Property like TextProperty
which is not necessary for every query.
Which db structure is better ?

Best Regards
Tom Wu


2010/6/28 Luís Marques <[email protected]>

> Hello Phil,
>
> Anyone correct me if I'm wrong but you use one of the following
> options, among others.
>
> You can have a "User" model, with a "items" ListProperty. The pros: if
> you have the key for the user (e.g. you can use the email), then with
> a simple get (faster than a query) you can retrieve the entity
> including the items. Writing a new object is transactional. The cons:
> you must always get a set the entire user entity. The entity might get
> large if there are a lot of items. If you use custom indexes with the
> "items" property the index might get large quickly, especially if you
> use more than one ListProperty (exploding indexes).
>
> You can have a "User" model, and a "UserItem" whose parent is the
> User, making it part of a transaction group. Cons: you have limited
> QPS writes to the transaction group (about 1-10 QPS), but that's the
> same limitation you have to a standalone User with items. You have to
> query (seek) the items, although I wouldn't call that a problem
> without profile data. Pros: you can write individual UserItems. You
> can have transactions for the user and the items s/he has.
>
> You can have a "User" model and a "UserItem" with a User key
> reference. Cons: you can no longer have a transaction depending on the
> user and the items s/he has. Pros: you can write individual items
> without write collisions to the User.
>
> You can have a "User" and a flat list (e.g. text, non-indexed) of the
> corresponding items. Cons: limits the queries you can make, have to
> update all items at once. Pros: better index performance.
>
> Etc. I hope it was helpful and correct?
>
> Best regards,
> Luís
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected]<google-appengine%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.

Reply via email to