Re: primary keys - Mailing list pgsql-general

From Tom Lane
Subject Re: primary keys
Date
Msg-id 7428.1252773963@sss.pgh.pa.us
Whole thread Raw
In response to primary keys  (Grant Maxwell <grant.maxwell@maxan.com.au>)
Responses Re: primary keys
List pgsql-general
Grant Maxwell <grant.maxwell@maxan.com.au> writes:
> I don't know why it was done this way but it seems to me that the
> email addresses are unique, non null and could be used as the primary
> key. This would make the replication much faster and simpler.

> Does anyone out there think the change (number to email address as
> primary key) would be a bad idea ?

One thing that's often considered a useful attribute of a primary key is
that it be immutable.  In your application, do users ever change their
email addresses?  If so, what should happen --- is it okay to treat that
as effectively a new entry?

Also, if you have any other tables referencing this one via foreign
keys, you'd have to have them storing the email address instead of
the serial number; it'll be bulkier and address updates will be that
much more expensive.

You can find lots and lots and lots of discussion of this topic if
you search the archives for talk about natural versus surrogate keys.

            regards, tom lane

pgsql-general by date:

Previous
From: Merlin Moncure
Date:
Subject: Re: primary keys
Next
From: Grant Maxwell
Date:
Subject: Re: primary keys