Bonjour,
pour illustrer mon problème, supposons que j'ai une structure où je stocke des informations concernant des programmes et des projet. Pour chaque programme, j'ai la liste des projets dans lesquels il est utilisé.
Bon, l'exemple est bidon, mais je l'espère assez claire...
bref, au final, j'ai une structure de type:
PROG. | PROJET ------+------- PG0 | P0 PG1 | P1 PG2 | P1 PG2 | P2 PG3 | P2 PG3 | P3 PG4 | P3 |
On voit bien ici que les programme PG1 est utilisé dans le projet P1 avec le programme PG2. Celui-ci est de son coté utilisé en plus dans le projet P2... etc.
J'en viens donc au but de mon algo: j'ai un super virus qui se propage dans les programmes d'un même projet... je veux donc pouvoir identifier, à partir d'une liste de programmes infectés quels sont les programmes qui vont être touchés.
Par exemple, si je suppose que le programme PG4 est infecté, il va contaminer PG3 qui est dans le même projet P3, mais PG3 étant dans P2, PG2 va être aussi contaminer etc jusqu'à PG1. Bref, seul PG0 s'en sors.
Mon but est donc de trouver la liste des programmes infectés (PG1, 2, 3 et 4) à partir de PG4.
Ca parait con comme ça (et ça l'est peut-être), mais j'ai du mal à trouver une méthode efficace pour traiter ça... pour info, l'algo doit tourner sous cobol et ma strucutre est en DB2 . Je ne peux pas utiliser de requête récursive en DB2
Mon problème est d'arriver (dans des temps de traitement raisonnable) à identifier simplement les programmes/projets par lesquels je suis déjà passé.
Je ne sais pas si c'est suffisement clair mais merci d'avance pour d'éventuelles réponses...
Message édité par lennelei le 28-06-2006 à 12:39:46