Re: string primary key - Mailing list pgsql-general

From Mark Gibson
Subject Re: string primary key
Date
Msg-id 446369C6.20802@gibsonsoftware.com
Whole thread Raw
In response to Re: string primary key  (Scott Marlowe <smarlowe@g2switchworks.com>)
Responses Re: string primary key
Re: string primary key
List pgsql-general
Scott Marlowe wrote:

>
> If you need a unique constraint on the text field anyway, and it's a
> natural key, you're generally better of using that field as the pk.
>
> However, if it's not a natually unique key, then it shouldn't be the pk,
> and int is a perhaps better choice.
>
> There are two VERY oppositional schools of thought on natural versus
> artificial keys out there, and neither side is likely to change their
> minds.
>
> My preference is generally for artificial keys (i.e. sequence generated
> ones) because I've had requirements change underfoot too many times to
> rely on natural keys all the time.
>

Thanks for your answer.  It sounds like your saying that in terms of
performance, there is no difference between a character field pk and an
integer pk.

I've got a followup - The primary key for the table in question consists
of 2 varchar fields: picture 'state' and 'city' where city is guaranteed
to be unique within a state, and (state, city) form a unique key.  This
sounds like a good candidate for a sequence key.  Is there a difference
in terms of performance in this case?

pgsql-general by date:

Previous
From: Martijn van Oosterhout
Date:
Subject: Re: pg_dump and grants to PUBLIC
Next
From: Blair Lowe
Date:
Subject: Re: pg_dump and grants to PUBLIC