Problème de jointure dans le insert into avec code java [Résolu]

pink90 34 Messages postés lundi 25 avril 2011Date d'inscription 18 juin 2013 Dernière intervention - 17 mai 2011 à 12:38 - Dernière réponse : pink90 34 Messages postés lundi 25 avril 2011Date d'inscription 18 juin 2013 Dernière intervention
- 19 mai 2011 à 10:06
Bonjour !
Pour vous mettre dans la situation correctement je vais essayez d'expliquer mon problème de A à Z et j'espère que vous pouvez me trouver la solution

j'ai une BD qui contient 4 tables (avec Access) :

Utilisateur(Id_utilisateur,nom,Id_dir,type)
Fix(Id_fix,NumFix,Id_utilisateur)
GSM(Id_GSM,NumGSM,type_abonnement,Id_utilisateur)
Direction(Id_dir,Nom_dir)

j'ai réalisé une interface graphique pour ma base de données avec java (NetBeans) et maintenant j'essaye de lier ma base avec celle ci
j'ai réussi à établir une connexion entre base et interface (jdbc/odbc)

j'ai un formulaire pour ajouter un nouveau utilisateur:



le problème : je voulais faire un INSERT INTO et une jointure au même temps des quatre tableaux pour ajouter à la fois l'utilisateur,son numéro de tel,son id de direction,... mais je sais pas comment je peux joindre les tableaux et insérer des lignes au même temps , ils m'ont proposé de changer l'architecture de ma BD et de ne laisser qu'une seule table mais je pense que ça va violer la première forme normale celle de l'atomicité des attributs en sachant qu'un utilisateur peut avoir 0 ou plusieurs numéros de fixe ou de GSM ,mais un utilisateur appartient à une et une seule direction



est ce que vous pouvez me proposer une solution pour que mon formulaire fonctionne correctement SVP ?

Merci et Bonne journée
Afficher la suite 

Votre réponse

3 réponses

cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscription 17 mai 2018 Dernière intervention - 17 mai 2011 à 13:03
+3
Utile
Tu as mille fois raison de ne pas faire une seule table, ce serait vraiment bête de s'être cassé la tête à essayer de proposer un modèle de base de données qui tient la route pour tout détruire à la première difficulté.

En fait, tu ne peux pas faire de "jointure" pour l'insertion, il faut que tu exécutes 4 requêtes insert, mais, tu peux le faire en une fois :
connexion.ouvrir();
String requete = "INSERT INTO Fix values(...);
                  INSERT INTO Direction values(...);
                  INSERT INTO GSM values(...);
                  COMMIT;";
connexion.executeUpdate(requete);
connexion.fermer();



En plaçant le commit à la fin de la requête, tu t'assures que si tu as un problème à la troisième ligne, les données ne sont pas insérées dans les tables
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Julien39
Utilisateur anonyme - 18 mai 2011 à 18:50
+3
Utile
Et à la limite si jamais tu as une erreur lors de l'exécution de ta requête, tu peux notifier l'utilisateur avec une petite pop-up (JOptionPane.shoMessageDialog() par exemple).

Juste un détail tout petit, je mettrais plutôt ta police en vert qu'en rouge pour ton bouton "Ajouter". Le rouge fait plus penser aux annulations et aux erreurs.

Bonne continuation :D

--
Pylouq (actuellement jongleur de clavier AZERTY et de clavier QWERTZ)
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Utilisateur anonyme
pink90 34 Messages postés lundi 25 avril 2011Date d'inscription 18 juin 2013 Dernière intervention - 19 mai 2011 à 10:06
0
Utile
Merci
Commenter la réponse de pink90

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.