|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() ![]() Inscription : février 2007 Messages : 10 ![]() |
Bonjour,
j'ai encore un petit soucis J'ai 2 tables (Premiere table 'users': identifiant + nom) ----------- id | nom | ----------- 1 | max | ----------- 2 | benoit | ----------- 3 | alexis | ----------- 4 | pascal | ----------- (Deuxieme table 'reseau': demande d'ajout d'un ami + celui qui recoit la demande) ----------------------- demandeur | receveur | ----------------------- 1 | 2 | ----------------------- 3 | 1 | ----------------------- 1 | 4 | ----------------------- Dans mon cas, si je veux afficher les amis de 1, c'est a dire "max", je fais "WHERE (demandeur = 1 OR receveur = 1)". 1 peut demander à etre ami mais il peut également recevoir des demandes des autres amis. Mon soucis est au niveau de la jointure avec la table users car la liaison est soit avec demandeur ou soit avec receveur. Si je fais avec demandeur, j'obtient 3 "FROM users JOIN reseau ON id=demandeur" et si je fais avec receveur, j'obtient 2 et 4 "FROM users JOIN reseau ON id=receveur". Ce qui est logique, la solution serait de doubler les données comme ceci mais du coup, je prends de la place et de la vitesse pour rien car les données sont identiques. ----------------------- demandeur | receveur | ----------------------- 1 | 2 | ----------------------- 2 | 1 | ----------------------- 3 | 1 | ----------------------- 1 | 3 | ----------------------- 1 | 4 | ----------------------- 4 | 1 | ----------------------- J'espere que vous avez compris ma question Merci d'avance |
|
|
00
|
|
|
#2 | ||
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
Quand j'ai traité ce genre de cas, j'ai utilisé une vue qui permettait d'avoir les relations réciproques (la colonne demandeur est assez optionnelle) :
Code :
|
||
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() ![]() Inscription : février 2007 Messages : 10 ![]() |
Merci pour cette solution, je pense que je vais utiliser ton système, au moins l'espace de stockage ne sera pas doublé.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com