Bonjour,
un petit problème de conception...
Voilà ce que je veux faire : gérer les dépendances entre programmes.
Exemple : un programme A appelle B, qui lui même appelle C.
Je veux pouvoir connaître tous les programmes appellant C directement
ou indirectement. Donc A et B dans mon exemple.
J'avais pensé à une simple table TAPPEL (APPELLANT, APPELLE), c'est
simple à remplir :
Ensuite la requête
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 APPELLANT APPELLE A B B C
me ramène seulement B ; pour avoir aussi A je dois faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT APPELLANT FROM TAPPEL WHERE APPELLE = 'C'
mais si j'ai plus de 2 niveaux d'appel (ex : C appelle D et je veux connaître
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 SELECT APPELLANT FROM TAPPEL WHERE APPELLE = 'C' UNION SELECT APPELLANT FROM TAPPEL WHERE APPELLE IN ( SELECT APPELLANT FROM TAPPEL WHERE APPELLE = 'C' )
tous les appellants de D) je dois rajouter encore une UNION et ainsi de suite...
Bref vous l'aurez compris, je voudrai que tout cela fonctionne quelque soit
le niveau d'imbrication... Alors une idée ? Une requête qui permet de faire cela ?
Ou peut-être une table faite différemment ?
Merci d'avance...
Partager