Skip site navigation (1) Skip section navigation (2)

Re: references/ForeignKey sur 2 tables

From: Pierre Didelon <pdidelon(at)cea(dot)fr>
To: Masse Jacques <jacques(dot)masse(at)bordeaux(dot)cemagref(dot)fr>
Cc: pgsql-fr-generale(at)postgresql(dot)org
Subject: Re: references/ForeignKey sur 2 tables
Date: 2005-03-14 16:10:25
Message-ID: 4235B771.6040203@cea.fr (view raw or flat)
Thread:
Lists: pgsql-fr-generale

Masse Jacques wrote:

> On pourrait utiliser une table commune (juste les cles primaires) 
ce qui est référencé par la table annexe ce n'est pas les cles primaires
> qui est mise à jour par trigger lors d'un ajout dans chaque table. 
> La table annexe etablit une relation vers cette table commune
mais hors cette considération ça devrait effectivement fonctionner.
Même s'il y a alors duplication des données entre la table commune
et les tables individuelles :-( mais bon tant pis ;-)
Merci!
Pierre
> 
> Jacques Massé
> ________________________________________
> Diadfish: http://www.diadfish.org
> PostgreSQL : http://www.postgresqlfr.org
> 
> 
> 
> 
> 
>>-----Message d'origine-----
>>De : pgsql-fr-generale-owner(at)postgresql(dot)org
>>[mailto:pgsql-fr-generale-owner(at)postgresql(dot)org]De la part de Pierre
>>Didelon
>>Envoyé : lundi 14 mars 2005 16:32
>>À : pgsql-fr-generale(at)postgresql(dot)org
>>Objet : [pgsql-fr-generale] references/ForeignKey sur 2 tables
>>
>>
>>Bonjour,
>>
>>j'ai deux tables "image" et "spectre" qui sont deux listes de 
>>"produits"
>>et pour lesquelles j'ai une table annexe qui donne les 
>>conditions géomètriques
>>de prise de vue pour tous ces produits. J'aimerais que cette 
>>table annexe ait une
>>reference/foreignKey sur l'union de ces deux tables. Ce n'est 
>>(semble!?) pas possible
>>directement! J'ai essaye a travers une vue qui fait l'union 
>>des deux tables.
>>
>>create view prodISS as
>>	( select arkdir, filename from image union select 
>>arkdir, filename from spectraset);
>>
>>mais
>>
>>create table testProd ( arkdir varchar(245), filename varchar(245),
>>foreign key (arkdir,filename) references prodiss  
>>(arkdir,filename) 	) ;
>>
>>est interdit car ... ERROR:  referenced relation "prodiss" is 
>>not a table
>>
>>Y a t il un moyen de s'en sortir autre que par l'heritage?
>>
>>En utilisant l'heritage je vois peut etre un moyen en créant 
>>une table générique
>>"produits" contenant la (ou les colonnes) utilisée(s) comme 
>>references/foreignKey
>>par la table contenant les conditions géomètriques (testProd 
>>dans l'example
>>ci dessus) et devant exister bien sur dans les deux tables 
>>filles, image
>>et spectre/spectraset qui en hérite! Mais est ce que ça 
>>fonctionne réellement,
>>je suis (pour l'instant en 7.3.2 :oops ) et la doc mentionne 
>>des limitations
>>quant aux index et foreignkey qui ne s'applique qu'aux tables 
>>individuelles
>>et pas à la filliation; et comme ma table "produits" ne 
>>contiendrait pas
>>réellement de 'rows' mais serviratit uniquement à décrire la 
>>partie commune
>>entre image et spectre, je crains que meme cette solution 
>>avec l'heritage
>>ne fonctionne pas :-(
>>...
>>mais peut être est ce mon cerveau qui ne marche pas ( ou pas 
>>assez bien ;-) )
>>
>>avez vous une idée ou des conseils?
>>Merci d'avance.
>>-- 
>>Pierre Didelon
>>
>>




pgsql-fr-generale by date

Next:From: Stéphane DupuyDate: 2005-03-17 09:21:40
Subject: Sous-ensembles
Previous:From: Pierre DidelonDate: 2005-03-14 15:31:41
Subject: references/ForeignKey sur 2 tables

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group