I'm no expert, but I'd probably do something like:

class Score(db.Model):
   player = db.UserProperty()
   game = db.StringProperty()
   points = db.IntegerProperty()

And set up a task queue to crunch through for friend rankings.

On Apr 11, 3:01 am, Herbert <[email protected]> wrote:
> hi all,
>
> suppose i have a network of 100k users, each of them have 100 friends.
> they're all playing some games and have scores , i want to do two
> rankings: 1. global ranking, 2. ranking of friends. how am i going to
> design my datastore for this?
>
> can i do something like this?
>
> class User(db.Model):
>    uid = db.IntegerProperty()
>    score = db.IntegerProperty()
>    friends = db.ListProperty(int)
>
> since we don't have join, i'm thining of putting ids of friends in a
> listProperty like above, learning from a GAE presentation that
> listproperty gets inefficient at (or limited to) 1k entries, which i
> think it's more than enough for my app.
>
> i think it's question of best practices for designing entities for GAE
> without JOIN, yet i couldn't seem to find a discussion that nails what
> i'm looking for. would be grateful if anyone could share some
> thoughts.
>
> the appengine's been great! thanks all GAE team!
>
> Herbert

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