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
Views: Raw Message | Whole Thread | Download mbox | Resend email
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
>>
>>

Browse pgsql-fr-generale by date

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