Hi Carter,
Querying on one property or another has effectively no difference in performance. There are other considerations, however:
- Using a key will allow you to potentially add support for users authenticated in other ways (Eg, an external authentication framework) without changing the rest of your models.
- If you set the key_name of the userinfo model to the user_id of the user, you don't need to look the record up - you can create its key based on the logged in user with no datastore operations
- Querying on user objects can be tricky, particularly if the user has changed their email address. It's best to avoid doing this if you can.
--
Nick Johnson, Developer Programs Engineer, App Engine