Re: Foreign Key for multi PK or design question - Mailing list pgsql-sql

From Alvaro Herrera
Subject Re: Foreign Key for multi PK or design question
Date
Msg-id 20071211194246.GK10710@alvh.no-ip.org
Whole thread Raw
In response to Re: Foreign Key for multi PK or design question  (PostgreSQL Admin <postgres@productivitymedia.com>)
List pgsql-sql
PostgreSQL Admin wrote:
> This is my layout so far:
> 
> CREATE TABLE users (
> id serial NOT NULL,
> --question REFERENCES questions(id) ON DELETE CASCADE ## ON REMOVED##
> );
> 
> CREATE TABLE questions (
> id serial NOT NULL,
> questions varchar(450) NOT NULL
> );
> 
> CREATE TABLE answers (
> id serial NOT NULL,
> question_id int REFERENCES questions(id) ON DELETE CASCADE,
> user_id int REFERENCES users(id) ON DELETE CASCADE,
> answer varchar(450) NOT NULL,
> created timestamptz NOT NULL
> );
> 
> Originally I wanted to have a foreign key that would be the pk of the
> question table.  So if the user answered Q2, 5 and 6 - the user.fk would
> store values 2,5,6 - but I have passed most of logic to the answer table.

That would have made no sense.

> Does this look correct? or most efficient?

Yeah it seems sane, however you have forgotten to add NOT NULL to the FK
fields.

-- 
Alvaro Herrera                               http://www.PlanetPostgreSQL.org/
"No me acuerdo, pero no es cierto.  No es cierto, y si fuera cierto,no me acuerdo."                 (Augusto Pinochet a
unacorte de justicia)
 


pgsql-sql by date:

Previous
From: PostgreSQL Admin
Date:
Subject: Re: Foreign Key for multi PK or design question
Next
From: "Pavel Stehule"
Date:
Subject: Re: join on three tables is slow