NULL values or not? - Mailing list pgsql-sql

From Archibald Zimonyi
Subject NULL values or not?
Date
Msg-id Pine.LNX.4.21.0112211045420.15695-100000@valdez.netg.se
Whole thread Raw
In response to Re: Transaction and cascade problem  ("Christopher Kings-Lynne" <chriskl@familyhealth.com.au>)
Responses Re: NULL values or not?
Re: NULL values or not?
Re: NULL values or not?
Re: NULL values or not?
List 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



pgsql-sql by date:

Previous
From: "Christopher Kings-Lynne"
Date:
Subject: Re: Transaction and cascade problem
Next
From: mallah@trade-india.com
Date:
Subject: getting the name of currenlty connected host..