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 02/03/2017 12:21:49

Foreign key, table et vue

Bonjour,

Mes excuses si je reviens sur une problématique déjà abordée (j'ai lu des discussions là-dessus) mais je suis novice sur PG et je préfère exposer mon problème avec une mise en situation en pseudo-code.

Une table AUTEUR et une table OEUVRE.

Table AUTEUR :
- id (primary key)
- prénom
- nom
- date naiss
- date deces

Table OEUVRE :
- id (primary key)
- auteur (foreign key sur AUTEUR.id) (pour faire simple, un seul auteur par oeuvre)
- titre

Donc, j'ai posé une clé étrangère dans OEUVRE qui référence un identifiant d'auteur dans AUTEUR. Jusque là, OK.
J'aimerais, pour chaque appel à l'identifiant d'auteur, ne pas me retrouver avec la table AUTEUR "brute de décoffrage" (avec le colonnage id, prénom, nom etc.) mais bien plutôt avec ce que dans Ms-Access on appelle un champ calculé avec concaténations du genre : prénom + nom + (date naiss - date deces).
Effectivement, j'ai réalisé une vue qui me permet ce type de colonne mais... pas possible de poser une clé étrangère sur une vue... donc, je suis un peu coincé!

Quelle serait la parade la plus simple pour pallier cela?

Un grand merci par avance !

Jean-Louis

Hors ligne

#2 02/03/2017 12:44:53

ruizsebastien
Membre

Re : Foreign key, table et vue

Bonjour,

Pourquoi vouloir créer une FK dans la vue puisque l'intégrité est déjà gérée au niveau des tables ?


Cordialement,

Sébastien.

Hors ligne

#3 02/03/2017 16:01:33

Re : Foreign key, table et vue

Bonjour Sébastien,

En fait, dans mon idée, la vue me servait uniquement pour bénéficier de la "colonne calculée" (prénom + nom etc.)
Mais il est fort possible que je maîtrise mal certaines notions, et que de ce fait, je me crée un faux problème...

Donc, je reprends un peu pour voir si je ne me plante pas :

la colonne OEUVRE.auteur est une FK, qui référence AUTEUR.id. (PK) : cela je le comprends, pas de souci. Mais mon souhait, c'est qu'au moment de la saisie de OEUVRE.auteur, cela fasse appelle à la vue (puisque c'est là que j'y ai la "colonne calculée") et non à la table. L'avantage de la "colonne calculée" est d'offrir un formatage de la donnée tout-en-un (prénom, nom, date naiss, date deces) là où la table ne présente que les colonnes séparées, moins lisibles.

Pour info supplémentaire, j'utilise un Datagrip (de JetBrains) comme client.

Merci pour vos remarques et idées.

Cordialement,
Jean-Louis

Hors ligne

#4 02/03/2017 17:39:28

ruizsebastien
Membre

Re : Foreign key, table et vue

A mon sens, vous vous créez un faux problème effectivement ;-)
Créez votre vue (sans FK de toute façon c'est impossible) et tout ira bien.


Cordialement,

Sébastien.

Hors ligne

Pied de page des forums