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
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 ??? |