Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
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 13/04/2006, 20h34   #1
Nouveau Membre du Club
 
Inscription : avril 2006
Messages : 116
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 116
Points : 26
Points : 26
Par défaut enregistrement, probleme avec les relations

Bonjour,

Voici le problème :

J'ai une table nommé t_ligne avec les attributs: id_ligne,id_module,id_event,heure,date.

J'ai une table nommé t_module avec les attributs: id_module,module.

J'ai une table nommé t_event avec les attributs: id_event,event.

J'ai une table nommé t_correspondre avec les attributs: id_module,id_event.

Voila mes questions:
1°Lors d'un enregistrement, je souhaite que dans la table t_ligne figure l'id du module et non le module, l'id de l'event et non .... , comment faire ? utiliser une variable et y stocker le numero ? si oui, comment faire ?

2° La table t_correspondre, servira, dans le cas d'une recherche, à prédéfinir les choix suivants le module ou l'event choisi ( Il peut y avoir un event pour plusieurs module, un module pour plusieurs events, mais tous les modules ne peuvent pas avoir tous les évents et bien entendu, vice versa et inversement lol ).
Comment faire pour afficher les attributs 'module' et 'event' à l'utilisateur et non l'attribut id_event ... ?
si vous avez pas compris, je vous enverrai la réalisation conceptuel, mais j'ai pas de FTP

S'il vous plait, aidez moi

Merci mille fois !
Nelmo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2006, 21h14   #2
Provisoirement toléré
 
Avatar de Maximilian
 
Inscription : juin 2003
Messages : 2 622
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 2 622
Points : 2 505
Points : 2 505
Par défaut Re: enregistrement, probleme avec les relations

Citation:
Envoyé par Nelmo
1°Lors d'un enregistrement, je souhaite que dans la table t_ligne figure l'id du module et non le module, l'id de l'event et non .... , comment faire ? utiliser une variable et y stocker le numero ? si oui, comment faire ?
Il suffit juste de stocker l'id du module dans la colonne id_module et pareil pour event... je ne vois pas où est le souci ?

Citation:
Envoyé par Nelmo
Comment faire pour afficher les attributs 'module' et 'event' à l'utilisateur et non l'attribut id_event ... ?
Si j'ai bien compris la question, il faut faire une jointure entre la table t_ligne et les tables t_module et t_event. Voir ce tutoriel.

Si tu précisais un peu plus le contexte de ton problème, je pense qu'on comprendrait mieux...
__________________
Pensez au bouton
Maximilian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2006, 22h40   #3
Nouveau Membre du Club
 
Inscription : avril 2006
Messages : 116
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 116
Points : 26
Points : 26
Je te remercie pour ta réponse !

Je vais approfondir un peu plus !

En fait, je recoit des enregistrements dans un fichier, suivant le fichier demandé, je lance la fonction c++ qui me permet de traiter toutes les lignes enregistré dans le fichier.
Une fois le tri réalisé et les données mis dans des variables, je voudrai lrenseigner ma table t_ligne avec celle-ci.
Le problème réside dans le fait que je ne vois pas comment comparer d'une part le nom du module stocké dans la variable avec l'attribut module de la table t_module et d'autre part, je ne sais pas comment renseigné la table t_ligne avec l'id correspondant au module comparé !

Je veux que chaque enregistrement soit stockés dans la table t_ligne.

Pour le moment, je pense que ceci est un bon début:
Code :
SELECT module,id_module FROM t_module WHERE module LIKE 'variable';
le code me permet de séléctionner dans la table t_module le module et l'id correspondant, mais comment faire pour renseigner cette id dans la table t_ligne ? sachant bien sur, que je doit réaliser la meme opération pour la table event et que je doit aussi enregistrer le contenu des variables renseignants l'attribut date et heure ( tout ceci en meme temps koi ) !

Je t'avoue que c'est pas simple à expliquer mais bon, je vais y arriver, mon bts est en jeu et j'ai pas eu de cours de BDD alors bon ... lol
Nelmo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2006, 10h23   #4
Provisoirement toléré
 
Avatar de Maximilian
 
Inscription : juin 2003
Messages : 2 622
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 2 622
Points : 2 505
Points : 2 505
Citation:
Envoyé par Nelmo
le code me permet de séléctionner dans la table t_module le module et l'id correspondant, mais comment faire pour renseigner cette id dans la table t_ligne ? sachant bien sur, que je doit réaliser la meme opération pour la table event et que je doit aussi enregistrer le contenu des variables renseignants l'attribut date et heure ( tout ceci en meme temps koi ) !
A partir de MySQL 4.1, tu peux faire ceci :

Code :
1
2
3
INSERT INTO t_ligne (id_ligne, id_module, id_event, heure, date)
VALUES (xxx, (SELECT id_module FROM t_module WHERE module='yyyy'),
(SELECT id_event FROMt_event WHERE event='zzzz'), wwww, kkkk)
Avec une version antérieure il va falloir récupérer les id avec un SELECT puis faire le INSERT.

Citation:
Envoyé par Nelmo
j'ai pas eu de cours de BDD alors bon ... lol
Au pire tu as une très bonne excuse alors...
__________________
Pensez au bouton
Maximilian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2006, 11h28   #5
Nouveau Membre du Club
 
Inscription : avril 2006
Messages : 116
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 116
Points : 26
Points : 26
Je te remercie, je vai essayer ce code dans l'après midi, j'utilise la version 5 de mysql donc c'est bonheur !

Je t'informe juste apres l'essai !
Nelmo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2006, 16h27   #6
Nouveau Membre du Club
 
Inscription : avril 2006
Messages : 116
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 116
Points : 26
Points : 26
Et bien que te dire à part MERCI

Le code n'a pas marché du premier coup, je ne sait pas pourquoi, il voulait absolument du caractère " ' " pour encadrer l'heure et la date !

Vraiment, maximilian, je te remercie et longue à ce fabuleux forum !
Nelmo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2006, 17h23   #7
Nouveau Membre du Club
 
Inscription : avril 2006
Messages : 116
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 116
Points : 26
Points : 26
Re bonjour,

Voila, je reviens à la charge !

je voudrais que :
  • si l'event testé n'est pas encore dans la table event, je voudrais qu'il l'enregistre et qu'il remonte l'id ....
    Renseigné la table t_correspondre pour faire correspondre un module à un event !

Je ne voit pas trop comment faire mon if not exist et comment inserer un second insert pour la table correspondre ...

Si vous pouviez m'aider, sa m'arrangerai !

Merci
Nelmo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h24.


 
 
 
 
Partenaires

Hébergement Web