the problem:

how to best structure the id system for a social network app on app
engine.


the run down:

users access the app through a social network. they identify
themselves to the app with a 'platform type id' (pl_type_id, enum) and
'platform user id' (pl_user_id, 64bit int) pair. examples: user 12345
at facebook, user 45678 at myspace, etc.

we need to be able to find their data using that pair. we also need to
be able to find their friend's data using lists of the same sort of
pairs.

let's say for the sake of simplicity that each user has a User object
in the datastore. we need to be able to efficiently fetch a specific
User object using a (pl_type_id, pl_user_id) pair, and fetch a list of
User objects (up to say 1000) using a list of (pl_type_id, pl_user_id)
pairs.


ideas thus far:

1.) User has integer properties for pl_user_id and pl_type_id.
resolving one user object is no issue, resolving many requires an 'IN'
query, which is not viable since it makes 1 query for each pair in the
list - NO GOOD

2.) User objects use key names of the form '<pl_type_id>:<pl_user_id>'
or something similar. then we can form the key from the provided info
and fetch based on keys. we never used to do this because sql sucked
at finding strings - not sure how app engine does..? - BETTER..?

3.) is there a way to specify the id on a newly created Model? we know
the pl_user_id is unique. we can then have a Model for each network
and build keys from the pl_user_id. this is how we used to roll in the
mysql world. - MAYBE..?

additional ideas and feedback appreciated, thanks in advance.
--~--~---------~--~----~------------~-------~--~----~
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-appengine@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
-~----------~----~----~----~------~----~------~--~---

Reply via email to