> I'm very, very new to mysql and I've been toying with it the last
> couple weeks. I've hit upon a theoretical question that I would like to
> run by more experienced users.
> One of the things I've been doing to teach myself is creating databases
> and tables that might be similar to databases powering big, popular
> sites like Flickr or Digg. For example, I created a user table (id
> [primary key], name, nickname, email, location, birthday, profile,
> etc.) and then played around with querying it in various ways.
> One of the things I did to learn how to use "join" was to create a
> separate table for blocked users. Sites like Flickr and Digg often give
> users the ability to block other users. The way I implemented this was
> to create a table with the blocker's id and the "blockee's" id. Using
> that, I can query the blocked users table and cross-reference it to the
> user list and come up with the list of blocked users for any specified
> user. Pretty cool.
> So I wonder. On a big site with a million+ users, would having to query
> a separate table for a list of blocked users like that bog down the
> site or would it be preferable (in terms of speed and efficiency) to
> add a field to the user table that lists the id numbers of that user's
> blocked users, sort of a pseudo-array that I collapse and expand when
> needed (e.g., a blocked user array-like list might look like
> "150|11516|61878|9091|41064" etc.
> Any thoughts? Or am I still so new at this that this scenario doesn't
> make sense?