Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/08/2006, 15h53   #1
Invité de passage
 
Inscription : juin 2006
Messages : 6
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 6
Points : 2
Points : 2
Par défaut trigger et table de jointure?

Bonjour à tous,

J'aimerais vous soumettre une question qui me bloque depuis un certain temps.

Au niveau de mon MCD, j'ai une entité Client avec pour identifiant id_Client, une entité Contrat avec pour identifiant id_Contrat et une relation plusieurs à plusieurs (n-m) qui relie les deux entités précédentes et que j'ai appelée Signe_Contrat.

Au niveau de mon MLD, j'ai donc les tables Client, Contrat et Signe_Contrat que j'exprime de la façon suivante:
CLIENT ( #id_Client, nom, prenom, ... )
CONTRAT ( #id_Contrat, type, date_signature, ... )
SIGNE_CONTRAT ( # ( CONTRAT.id_Contrat#, CLIENT.id_Client# ) )

Au niveau de la table de jointure SIGNE_CONTRAT, j'aimerais savoir s'il est possible de faire appel à un trigger sous PostgreSQL qui aurait en charge, après la fin de l'insertion des données relatives aux tables CLIENT et CONTRAT, d'insérer les valeurs de id_Contrat et id_Client automatiquement dans la table SIGNE_CONTRAT?

Et si cela est possible (l'usage d'un trigger), est-ce conseillé ou non?

Voilà, j'espère avoir été clair? J'attends avec impatience votre aide.

Merci d'avance.
gero123 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2006, 18h06   #2
Membre chevronné
 
Avatar de gerald2545
 
Inscription : février 2003
Messages : 643
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 643
Points : 660
Points : 660
Citation:
Au niveau de la table de jointure SIGNE_CONTRAT, j'aimerais savoir s'il est possible de faire appel à un trigger sous PostgreSQL qui aurait en charge, après la fin de l'insertion des données relatives aux tables CLIENT et CONTRAT, d'insérer les valeurs de id_Contrat et id_Client automatiquement dans la table SIGNE_CONTRAT?
ça ne me semble pas très logique....
comment veux tu que ton trigger devine les enregistrements que tu veux associer
donc la réponse est non, il faut que tu le fasses à la mimine
gerald2545 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2006, 20h18   #3
Expert Confirmé Sénior
 
Avatar de GrandFather
 
Inscription : mai 2004
Messages : 4 490
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : mai 2004
Messages : 4 490
Points : 5 049
Points : 5 049
Bonjour,

ça n'est effectivement pas faisable par un trigger seul. Tout au plus tu peux créer une procédure stockée en plpgsql qui va prendre en paramètre tout les paramètres liés à la signature d'un contrat (coordonnées du client et données du contrat) et qui se chargera d'alimenter les trois tables automatiquement et au sein d'une même transaction.
__________________
FAQ XML
------------
« Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
Giacomo Leopardi
GrandFather est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h19.


 
 
 
 
Partenaires

Hébergement Web