Re: Unique or Primary Key?

Eric G. Miller <egm2@jps.net>

From: "Eric G. Miller" <egm2@jps.net>
To: pgsql-general@postgresql.org
Date: 2001-05-03T01:50:09Z
Lists: pgsql-general
On Thu, May 03, 2001 at 12:58:03AM +0100, pgsql@itsbruce.uklinux.net wrote:
> This table is man-in-the-middle of a many-to-many relationship:
> 
> CREATE TABLE cv_entries (
>         subscriber INTEGER NOT NULL 
>                 REFERENCES subscribers
>                         ON DELETE CASCADE
>                         ON UPDATE CASCADE,
>         entry_type INTEGER NOT NULL
> 	        REFERENCES cv_entry_types
>                         ON DELETE CASCADE
>                         ON UPDATE CASCADE,
>         ordinal INTEGER, 
> 	value1 TEXT, 
> 	value2 TEXT, 
> 	minimum_trust SMALLINT, 
> 	UNIQUE(subscriber, entry_type, ordinal)
> );
> 
> I used a unique index here because I couldn't see any reason for a
> Primary Key - this table will always be searched on either the
> subscriber or entry_type index.
> 
> Was I wrong?  Should this be a Primary Key?

I think it's a distinction without a difference. A primary key is just a
way to identify a unique tuple that's been chosen from a possible
set of candidate keys (often there's only one candidate).  And,
primary keys are enforced with a unique index...

-- 
Eric G. Miller <egm2@jps.net>