> > A primary key absolutely forbids duplicate values.
> >
> > Indexes created with the UNIQUE keyword do not allow duplicates, except
> > for the special case that multiple NULL values are allowed.
>
> I realise that it may (and is) defined in such a way, but it still does
not
> explain *why* part of a PRIMARY key might not be NULL.

Because a value in a PK should uniquely identify a row.

Using one or more NULLs negates this...

The best systems don't use NULLs at all. NULL is an abomination.

You should only store "values" that are "true".

Eg: employee with number 1 has a name of "Martijn".

If "salary" is optional, do not make it nullable, but create a separate
table "employee_salaries".

This way, there's never NULL confusion either.

With regards,

Martijn Tonies
Database Workbench - developer tool for InterBase, Firebird, MySQL & MS SQL
Server
Upscene Productions
http://www.upscene.com


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

Reply via email to