pink90
Messages postés34Date d'inscriptionlundi 25 avril 2011StatutMembreDernière intervention18 juin 2013
-
17 mai 2011 à 12:38
pink90
Messages postés34Date d'inscriptionlundi 25 avril 2011StatutMembreDernière intervention18 juin 2013
-
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 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 ?
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020371 17 mai 2011 à 13:03
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
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)