X-Original-To: pgsql-sql-postgresql.org@localhost.postgresql.org Received: from localhost (av.hub.org [200.46.204.144]) by svr1.postgresql.org (Postfix) with ESMTP id 0D107D7868 for ; Fri, 2 Sep 2005 10:23:58 -0300 (ADT) Received: from svr1.postgresql.org ([200.46.204.71]) by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024) with ESMTP id 51156-10 for ; Fri, 2 Sep 2005 13:23:56 +0000 (GMT) Received: from postfix3-2.free.fr (postfix3-2.free.fr [213.228.0.169]) by svr1.postgresql.org (Postfix) with ESMTP id 1CE7CD779A for ; Fri, 2 Sep 2005 10:23:55 -0300 (ADT) Received: from nordine.ateur (main.librelogiciel.com [82.232.68.73]) by postfix3-2.free.fr (Postfix) with ESMTP id EE9C7C04B for ; Fri, 2 Sep 2005 15:23:56 +0200 (CEST) Received: from jerome by nordine.ateur with local (Exim 3.36 #1 (Debian)) id 1EBBWO-0002zp-00 for ; Fri, 02 Sep 2005 15:23:56 +0200 Date: Fri, 2 Sep 2005 15:23:56 +0200 To: pgsql-sql@postgresql.org Subject: not sure about constraints Message-ID: <20050902132356.GD10284@mail.librelogiciel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.9i From: Jerome Alet X-Virus-Scanned: by amavisd-new at hub.org X-Spam-Status: No, hits=0.978 required=5 tests=[FORGED_RCVD_HELO=0.05, UPPERCASE_50_75=0.928] X-Spam-Level: X-Archive-Number: 200509/12 X-Sequence-Number: 22559 Hello, I've got 4 tables : CREATE TABLE tableA (id SERIAL PRIMARY KEY NOT NULL, blahA TEXT); CREATE TABLE tableB (id SERIAL PRIMARY KEY NOT NULL, blahB TEXT); CREATE TABLE tableC (id SERIAL PRIMARY KEY NOT NULL, ida INT4 REFERENCES tableA(id), idb INT4 REFERENCES tableB(id), blahC TEXT); CREATE TABLE tableD (id SERIAL PRIMARY KEY NOT NULL, ida INT4, idb INT4, blahC TEXT, CONSTRAINT checkAB FOREIGN KEY (ida, idb) REFERENCES tableC(ida, idb)); Is the definition of tableD sufficient, or should I do it this way instead : CREATE TABLE tableD (id SERIAL PRIMARY KEY NOT NULL, ida INT4 REFERENCES tableA(id), idb INT4 REFERENCES tableB(id), blahD TEXT, CONSTRAINT checkAB FOREIGN KEY (ida, idb) REFERENCES tableC(ida, idb)); which looks superfluous to me. ??? Thanks in advance Jerome Alet