Re: check constraint on multiple tables?

From: "Little, Douglas" <DOUGLAS(dot)LITTLE(at)orbitz(dot)com>
To: Louis-David Mitterrand <vindex+lists-pgsql-sql(at)apartia(dot)org>, "pgsql-sql(at)postgresql(dot)org" <pgsql-sql(at)postgresql(dot)org>
Subject: Re: check constraint on multiple tables?
Date: 2010-03-03 16:03:05
Message-ID: A434C531E37AD442815608A769550D805941EBA95F@EGEXCMB01.oww.root.lcl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Hello,

I would have designed as ship > cabin (PK of ship_id, Cabin_id)
And a separate chain of cabin_type > cabin_category > cabin

Type, and category are group classifiers and shouldn't be used to define the uniqueness of a cabin.

Take an example where the cabin category and type are defined globally for the entire fleet. Currently you'll have to duplicate the type, category defintions for each ship.

Doug

-----Original Message-----
From: pgsql-sql-owner(at)postgresql(dot)org [mailto:pgsql-sql-owner(at)postgresql(dot)org] On Behalf Of Louis-David Mitterrand
Sent: Wednesday, March 03, 2010 9:02 AM
To: pgsql-sql(at)postgresql(dot)org
Subject: [SQL] check constraint on multiple tables?

Hi,

I've got this chain of tables:

ship --> (id_ship) --> cabin_type --> (id_cabin_type) --> cabin_category
--> (id_cabin_category) --> cabin

The 'cabin' table has (cabin_number, id_cabin_category ref. cabin_category)

How can I guarantee unicity of cabin_number per ship?

For now I added a unique(cabin_number,id_cabin_category) but this does
not guarantee unicity for (cabin_number,ship.id_ship).

What is the best solution? Adding an id_ship to 'cabin'? Or check'ing
with a join down to 'ship'? (if possible).

Thanks,

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Oliveiros 2010-03-03 16:05:43 Re: check constraint on multiple tables?
Previous Message Richard Broersma 2010-03-03 15:57:48 Re: check constraint on multiple tables?