PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 18/08/2011 17:57:18

Selzig
Membre

FOREIGN KEY REFERENCE sur 2 tables différentes même nom d'index

Bonjour,

je dispose de 3 tables définies ainsi :

CREATE TABLE table01 (
  taID char(20),
  [...01],
CONSTRAINT ta_ID_pk_01 PRIMARY KEY(taID ));

CREATE TABLE table02 (
  taID char(20),
  [...02],
CONSTRAINT ta_ID_pk_02 PRIMARY KEY(taID ));

CREATE TABLE familles (
  faID char(20),
  taID char(20),
  [...],
CONSTRAINT fa_ID_pk PRIMARY KEY(faID),
CONSTRAINT fa_taID_exist FOREIGN KEY (taID) REFERENCES table01 (taID) ON DELETE CASCADE ON UPDATE CASCADE);

Ma question est de savoir s'il est possible de faire référence aux 2 tables table0x dans fa_taID_exist sachant que hormis le nom commun du champ servant de Primary Key (taID) des 2 fichiers users, la suite de leur description est différente (ie [...01] <> [...02]).

Merci. Cordialement.
Gilles

Dernière modification par Selzig (18/08/2011 18:43:48)

Hors ligne

#2 18/08/2011 18:17:46

gleu
Administrateur

Re : FOREIGN KEY REFERENCE sur 2 tables différentes même nom d'index

Non, une clé étrangère ne fait référence qu'à une seule table.


Guillaume.

Hors ligne

#3 18/08/2011 18:34:43

Selzig
Membre

Re : FOREIGN KEY REFERENCE sur 2 tables différentes même nom d'index

Oui, c'est bien ce que je pensais... mais je me demandais s'il n'y avait pas un moyen de contourner cette contrainte en utilisant une astuce SQL (une table temporaire...). Je vais supprimer la déclaration de cette contrainte dans ma table et gérer ce problème d'intégrité référentielle directement dans le langage de programmation utilisé pour mon application.
Merci pour la rapidité de votre réponse.
Cordialement. Gilles

Dernière modification par Selzig (18/08/2011 18:45:02)

Hors ligne

#4 30/11/2011 11:29:18

arthurr
Membre

Re : FOREIGN KEY REFERENCE sur 2 tables différentes même nom d'index

je crois que brave monsieur est un spammeur, mais le texte est très drôle  smile

Hors ligne

#5 30/11/2011 22:06:39

daamien
damien clochard

Re : FOREIGN KEY REFERENCE sur 2 tables différentes même nom d'index

[Utilisateur et messages supprimés]

Hors ligne

#6 16/12/2011 01:05:47

SQLpro
Membre

Re : FOREIGN KEY REFERENCE sur 2 tables différentes même nom d'index

faites un héritage au niveau de votre modèle et depuis la table mère ayez deux tables filles avec "le nom commun du champ servant de Primary Key (taID) des 2 fichiers users, la suite de leur description est différente (ie [...01] <> [...02])." Puis vous n'aurez qu'a greffer votre FK sur la table mère.

Sur l'héritage de données en générale, lisez l'article que j'ai écrit à, ce sujet : http://sqlpro.developpez.com/cours/mode … /heritage/

A +


Frédéric Brouard, alias SQLpro,  ARCHITECTE DE DONNÉES,  Expert langage SQL
Le site sur les SGBD relationnel et langage SQL   : http://sqlpro.developpez.com/
Modélisation de données, conseil, expertise, audit, optimisation, tuning, formation
* * * * *  Enseignant CNAM PACA, ISEN Toulon,  CESI Aix en Provence  * * * * *

Hors ligne

Pied de page des forums