Thanks to everyone that responded to my question, it was very helpful!

I've decided to keep all the fields together rather than split them into two
tables. I understand normalization and I've avoided redundancies in my DB.
After a user logs in, what I do is load all preferences into session vars so
that I don't have to continually call the DB for prefs every time a page is
loaded. So, for that reason, I think it would be more convenient to keep all
the member fields in one table. Member billing info, such as billing address
and credit card info, is already stored into a separate table (which has
very limited access with a separate user/password in MySQL). The Member DB I
was asking about holds stuff like username, password, e-mail, membership
expire date and various preferences.

Thanks for all the input!

- Monty


> From: [EMAIL PROTECTED] (Chris W. Parker)
> Newsgroups: php.general
> Date: Mon, 23 Feb 2004 15:34:41 -0800
> To: "Monty" <[EMAIL PROTECTED]>, <[EMAIL PROTECTED]>
> Subject: RE: [PHP] To Separate, or Not to Separate
> 
> Monty <mailto:[EMAIL PROTECTED]>
> on Monday, February 23, 2004 2:35 PM said:
> 
>> I'm wondering if I will see any noticeable speed increase if I were
>> to split the 20+ fields that hold preferences (nearly all are
>> single-digit 1/0 fields) out from the other fields that hold general
>> member data, and put them into their own table? Or maybe there's some
>> other good reason for doing this that I'm not aware of?
>> 
>> I'd actually prefer to keep it all together, because it's a lot
>> easier to update a single table in MySQL than several if a member
>> makes changes to their account or preferences.
>> 
>> What do you think?
> 
> what do *i* think?? well, i'll tell you.
> 
> i'd say you should definitely keep them in the same table. once you move
> them to another table you'll need some way of keeping track of each
> users corresponding settings and the way to do that is to have some kind
> of unique identifying field that is the same between both tables. this
> is usually done with an auto-incrementing ID field.
> 
> you will likely not see any performance increase if you split the
> tables. in fact you'll probably see a decrase as you'll have to do a
> join to get data from two tables at once.
> 
> and just to let you know (in case you don't already):
> 
> 1. don't select the entire table with "SELECT * FROM user_data". instead
> you should explicitly list each and every field you want to grab (even
> if it's all of them).
> 
> 2. in case you are not meaning to select the entire table but you are
> still doing SELECT *, you'd be much better off following tip #1 because
> the database won't be doing as much work.
> 
> 
> 
> hth,
> chris.

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to