>> % I don't know of a DB theory rule that says it's a bad idea to have the same 
>> columns in many tables, but it might make the design more compact to take the 
>> common stuff and put it into one table.

>> Oh, there is, indeed.  CF "normalization" :-)

> Well of course, but that begs the question, which normal form?

1, 2, and 3. There's an abundance of explanations on E. F. Codd's
normal forms on the web; I just picked the first Google result:

There are three main normal forms, each with increasing levels of normalization:
   2.1 First Normal Form (1NF): Each field in a table contains different information. 
       For example, in an employee list, each table would contain only one birthdate 
field. 
   2.2 Second Normal Form (2NF): No field values can be derived from another field. 
       For example, if a table already included a birthdate field, it could not also 
include a 
       birth year field, since this information would be redundant. 
   2.3 Third Normal Form (3FN): No duplicate information is permitted. 
       So, for example, if two tables both require a birthdate field, the birthdate 
information 
       would be separated into a separate table, and the two other tables would then 
access the 
       birthdate information via an index field in the birthdate table. Any change to 
a birthdate 
       would automatically be reflect in all tables that link to the birthdate table. 

http://www.databaseanswers.com/normal_forms.htm

If you're ambitious, you might want to try to abide by the other 330
requirements for relational databases as well, but in most cases, NF 1
through 3 is sufficient:

http://www.aisintl.com/case/olais/pb96/biblio.htm#Codd74

Regards,
--
  Stefan Hinz <[EMAIL PROTECTED]>
  iConnect GmbH <http://iConnect.de>
  Heesestr. 6, 12169 Berlin (Germany)
  Telefon: +49 30 7970948-0  Fax: +49 30 7970948-3

[filter fodder: sql, mysql, query]


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to