Thanks Will.  Makes sense.

On Sat, Feb 12, 2011 at 9:46 AM, WillSpecht <willspe...@gmail.com> wrote:

> I think you should ask yourself what data you need from the user.  I
> know this might not seem like the best way(in a RDBM), but you might
> want to store the information from the user, in the clip.  Especially
> if it is information that doesn't change very often like user name.
> That way you have the information each time you load the clip and
> don't even have to run those expensive queries.  The added work is
> that when a user changes their user name, you need to update a bunch
> of records, but you can do that in a task queue and it probably
> doesn't happen nearly as often as looking at a list of clips does .
>
> On Feb 11, 1:48 pm, Tony Chuinard <tony.chuin...@gmail.com> wrote:
> > My project consists of thousands of audio clips, each submitted by a user
> > (kind of like YouTube).
> >
> > Currently, the Clip entity is as follows
> >
> > // ....
> >   private long userId;
> >
> > So userId is the id of the person who made that clip.  Since I want to
> load
> > the User object when I load a record, I take my list of recordings (never
> > above 20) and do something like this:
> >
> > SELECT FROM User s WHERE s.id = userIdOfFirst OR s.id = userIdOfSecond
> > OR.....
> >
> > This works, and I create a Map<Long, User> which now allows me to lookup
> > users by ID in my app when displaying data to the user, but is this the
> most
> > efficient way of doing it?  I was looking at storing a private Key user,
> > because I know I can't do private User user, but I don't know if
> replacing
> > it with Keys would be a lot more efficient since that long is just a key.
> >
> > So does that big OR query have any performance implications?  Would I be
> > better off doing something like:
> > List<User> relevantUsers = new LinkedList<User>();
> > for (Clip clip : allMyClips) {
> >   relevantUsers.add(em.load(clip.getUserId()));
> >
> > }
> >
> > Using the em.load should be really quick because right now the long IS
> the
> > key.
> >
> > Can someone just fill in these gaps for me on my confusion?
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine for Java" group.
> To post to this group, send email to
> google-appengine-java@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine-java+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/google-appengine-java?hl=en.
>
>

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

Reply via email to