Re: primary keys

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Grant Maxwell <grant(dot)maxwell(at)maxan(dot)com(dot)au>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: primary keys
Date: 2009-09-12 16:46:03
Message-ID: 7428.1252773963@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Grant Maxwell <grant(dot)maxwell(at)maxan(dot)com(dot)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

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Grant Maxwell 2009-09-12 16:53:18 Re: primary keys
Previous Message Denis BUCHER 2009-09-12 16:44:50 Re: How to GRANT rights to modify a table ???