On 13/09/2009, at 2:46 AM, Tom Lane wrote:
Grant Maxwell <grant.maxwell@xxxxxxxxxxxx> 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?
This would be ok. The table keeps a list of email addresses and some
stats on them
users may have multiple addresses but would never alter a specific
record.
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.
so text PKs will be less efficient than numeric ?
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.
Good pointer = thanks Tom
regards, tom lane
--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general