At 5:36 PM -0600 11/27/06, Jay Sprenkle wrote:
On 11/27/06, Isaac Raway <[EMAIL PROTECTED]> wrote:
I'd like to strongly second this. Avoid NULL columns, even at apparent cost.
Having a valid default value is always better. If a design appears to
require NULL values, then the design is likely critically flawed.
Using NULLS is NOT a critical design flaw.
NULL means something specific and if you use it correctly it works perfectly.
NULL indicates when nothing has been entered into a field.
Not entering anything, and entering spaces or a default value, are different.
If you need that information then it's very useful. If you don't then
don't use it
by assigning default values.
Perhaps an intention behind the existence of NULLs was a useful idea,
but in practice, they are a big mess in SQL.
The NULL is used in SQL for a multiplicity of unrelated meanings,
some of which are: value is unknown, no value is applicable here,
value is at its default / has yet to be assigned to, value can not be
determined, result of that operation is invalid.
In fact, I read somewhere that there are a good 12 distint meanings
attached to NULLs, so we don't have 3-valued-logic, its
14-valued-logic.
But regardless, if you are given a NULL, how do you know what it means?
Moreover, SQL is inconsistent with itself in its treatment of NULLs,
in some situations treating 2 nulls as being distinct, and in other
situations treating them as non-distinct.
So NULLs can be helpful to you if you are very careful, but often
they are more trouble than they are worth, and wherever possible, one
should use some other way to express the meaning of what they were
using NULLs for.
-- Darren Duncan
-----------------------------------------------------------------------------
To unsubscribe, send email to [EMAIL PROTECTED]
-----------------------------------------------------------------------------