DB Design Concepts
| From: | Max Thayer | Date: | Wed, 02 May 2007 19:33:25 +0000 |
| Subject: | DB Design Concepts | ||
| Groups: | php.db | ||
| Request: | Send a blank email to php-db+get-43528@lists.php.net to get a copy of this message | ||
I'm using MySQL 5.x InnoDB engine, transactional tables. I have a
conceptual design question. If I have a two columns 'a' and 'b', a is
the primary key, and b is a type double, in table 1 (T1) for which
column b will have many NULL values, do I leave it with an allow null
constraint on the column or pull the column and place it into table 2
(T2) with a foreign key, making a simple optional one-to-one
relationship. Over the course of time, as the table fills with records,
will a column w/ many NULL values have a detrimental effect on
performance or maintenance with regards to the DB? Am I missing
something here in DB design 101, by leaving the column in the T1 and
knowing it will only be populated 7% of the time; what are the major
implications based on the RDBMS and engine I'm using?
Do I go to 2nd NF simply because a column is not going to be populated
as often?
Max H. Thayer
Lead Software Developer
Center for High-Throughput Structural Biology
Hauptman-Woodward Medical Research Inst.
700 Ellicott St.
Buffalo, NY 14203
Phone: 716-898-8637
Fax: 716-898-8660
http://www.chtsb.org <http://www.chtsb.org/>
http://www.hwi.buffalo.edu <http://www.hwi.buffalo.edu/>