From: | Archibald Zimonyi <archie(at)netg(dot)se> |
---|---|
To: | pgsql-sql(at)postgresql(dot)org |
Subject: | NULL values or not? |
Date: | 2001-12-21 09:53:38 |
Message-ID: | Pine.LNX.4.21.0112211045420.15695-100000@valdez.netg.se |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
Hi there,
I have a question about NULL values. Lets say that we have a world with
the following info:
FirstName
LastName
PhoneNumber
Everyone has to have a FirstName and LastName but not everyone has to have
a PhoneNumber.
Personally I don't like NULL values, so I would have created to tables for
the above world roughly like this:
CREATE TABLE person
(
id int2,
firstname text,
lastname text
);
CREATE TABLE phonenumbers
(
id int2,
phonenumber text
);
with keys and indexes and such things.
A SELECT statement to retireve all info from these two tables would look
like this:
SELECT firstname, lastname, phonenumber
FROM person
LEFT JOIN phonenumbers USING (id);
Another way of doing the same world is the following
CREATE TABLE person
(
id int2,
firstname text,
lastname text,
phonenumber text
);
with all appropriate keys etc.
A SELECT statement would look like this:
SELECT firstname, lastname, phonenumber
FROM person;
As I wrote, I usually try to avoid NULL values, thus creating my tables as
the first example. What kind of thumb rules do you use when it comes to
NULL values? Again, I am referring to my vampire database which I named a
few days ago (btw, without VACUUM the SELECT statement takes less then a
second) and I am planning on making less tables where I can. But it still
feels wrong to add NULL values when I can avoid them.
Could someone give me some input please?
Thanks in advance,
Archie
From | Date | Subject | |
---|---|---|---|
Next Message | mallah | 2001-12-21 10:42:41 | getting the name of currenlty connected host.. |
Previous Message | Christopher Kings-Lynne | 2001-12-21 02:57:55 | Re: Transaction and cascade problem |