[Php & MySQL] Problème pour création de tables

Problème pour création de tables [Php & MySQL] - SQL/NoSQL - Programmation

Marsh Posté le 08-10-2006 à 22:38:47    

Bonsoir à tous.
 
Voilà je suis confronté à un problème et je ne sais pas comment le solutionner.
En gros je dois créer une applications pour la gestion de vente. Une vente peut être effectuée par une personne ou des personnes qui travaillent pour lui.
 
Monsieur D et E travaillent pour monsieur B.
Monsieur F et G travaillent pour monsieur C.
Monsieur B et C travaillent pour monsieur A.
 
Schéma :
 


      A
     /\
    /  \
   B    C
  /\    /\
 /  \  /  \
D    EF    G


 
Chaque vendeur peut 0-N ventes.
 
Donc j'avais pensé à ceci :
 


 
+----------+             +--------+
| Vendeurs |<----+       | ventes |
+----------+ 0-1 |       +--------+
+ id       |     |       | id     |
| idsup    |-----+       | idvend |
| nom      |    0-N      | .....  |
| prenom   |-----------> | .....  |
+----------+             +--------+


 
Donc dans la table vendeur :
id => identifiant (autoincrement)
idsup => identifiant du supérieur
 
Dans table ventes :
id => identifiant (autoincrement)
idvend => identifiant du vendeur.
 
Cela peut très bien fonctionner.  
Mais ça me pose un problème :
 
Comment afficher toutes les personnes du groupe de monsieur B. Sachant que son équipe c'est lui est tout ceux qui sont en dessous de lui. (Dans notre cas, B, D et E mais D aurait pu avoir des personnes en dessous de lui et même chose pour E).
 
Je vous avoue que je cherche depuis un petit temps mais je n'arrive pas à résoudre ce problème :'(
 
Je vous remercie d'avance pour l'aide que vous pourez m'apporter...


Message édité par imnotgood le 08-10-2006 à 22:42:37
Reply

Marsh Posté le 08-10-2006 à 22:38:47   

Reply

Marsh Posté le 09-10-2006 à 01:18:19    

La seule solution que je vois c'est une fonction récursive. J'ai testé cela fonctionne très très bien.
 
Mais dans le cas ou j'ai 300 fils/sous fils/sous sous fils,..... cela me fait un nombre très et trop élevé de requête SQL.
 
Help please...

Reply

Marsh Posté le 09-10-2006 à 03:19:41    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed