Probleme de requete avec 1,n 1,n sur deux tables [Résolu]

Signaler
Messages postés
3
Date d'inscription
mardi 12 octobre 2010
Statut
Membre
Dernière intervention
13 septembre 2011
-
Messages postés
3
Date d'inscription
mardi 12 octobre 2010
Statut
Membre
Dernière intervention
13 septembre 2011
-
Bonjour a tous !

J'ai un petit soucis actuellement avec SQL server :

3 Tables :
USERS (ID, LOGIN, PWD)
USERS_GROUPS (USER_ID, GROUP_ID) les deux en primary key
GROUPS (ID, LABEL)

Dans mon code je dois ecrire un insert pour ajouter un individu, et lui attribuer un groupe, sachant qu'on peut lui en attribuer plusieurs.

Cependant je ne vois pas comment joindre les tables pendant l'insert..
Je suis coince a ce niveau la :

"INSERT INTO USERS, USERS_GROUPS (Login, Password, BugLogin, Group_Id) VALUES ('" + txtBoxLogin.Text + "' ,'" + txtBoxPassword.Text + "' ,'" + txtBoxBugLogin.Text + "' ,'" + lstBoxUserGroup.Text + "') ")


Si quelqu'un pouvait me venir en aide au niveau de la requete je vous serais reconnaissant.

Bonne journee

6 réponses

Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
ceci dit, si tu comptes garder ta solution de départ
(à savoir 3 tables avec USERS_GROUPS comme table
unissant les deux autres), il faudra corriger ton instruction d' insertion.
Pour ajouter un nouvel user, il faudra le faire en deux temps.
L' insèrer dans la table USERS dans un premier temps.
Ensuite l' ajouter à USERS_GROUPS.En définissant son GROUPE.
Tout cela dans un transaction.

DBEngine.BeginTrans
INSERT INTO USERS ( ID_USER, PWD ) VALUES( xUSER, xPWD );
INSERT INTO USERS_GROUPS (ID_USER, ID_GRO UP ) VALUES( xUSER, xGROUP);
DBEngine.CommitTrans


[] Ce qui va sans dire. va mieux en le disant.
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
Salut,
si je comprend bien:
-USERS --> tables UTILISATEURS
-GROUPS --> tables GROUPES

A quoi sert alors GROUPES_USERS ?
Si c' est pour grouper les utilisateurs, ce n' est pas la bonne approche.
Si un utilisateur peut appartenir à plusieurs groupes à la fois,
il suffit d avoir USER_ID et GROUP_ID comme clé primaire
dans la table USERS .La relation sera alors avec la table GROUPS
via GROUP_ID.


*USERS *GROUPS
-[b]USER_ID ---> -GROUP_ID
-GROUP_ID ----//b

Pour ajouter à la table USERS un individu ( nouveau ou déjà existant) ,
il suffit alors d' insérer son ID et l' ID du groupe auquel il appartiendra.
[] Ce qui va sans dire. va mieux en le disant.
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
Problème de mise en forme

*USERS *GROUPS
-USER_ID /---> -GROUP_ID
-GROUP_ID ----/
a relation entre GROUP_ID d users et GROUP_ID de groups.
Messages postés
3
Date d'inscription
mardi 12 octobre 2010
Statut
Membre
Dernière intervention
13 septembre 2011

Mais dans ce cas suivant, si group ID est dans User ID en tant que primary key aussi, comment dire qu'il appartiendra au groupe 2 et aussi au groupe 3 par exemple ?

Et derniere question comment faire pour definir group ID en primary key dans Users ? Je dois le faire par le diagramme en cliquant glissant ?

Cordialement
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
lire attentivement :

...il suffit d avoir USER_ID et GROUP_ID comme clé primaire .

Ainsi l' individu 101 peut appartenir au group 32 une fois et au geoupe 45 une fois.




[] Ce qui va sans dire. va mieux en le disant.
Messages postés
3
Date d'inscription
mardi 12 octobre 2010
Statut
Membre
Dernière intervention
13 septembre 2011

Parfait tout marche pour le mieux .
Encore merci de tes conseils, jai opte pour la solution numero 2 car pas concluante pour la premiere .

Cordialement