Bonjour,
Désolé pour mon intitulé pas clair, je n'ai pas trouvé les mots pour résumer.
A un moment donné dans mon application je lance une procédure stockée pour activer des catégories suivant un état d'une table liée.
Voici la procédure en question
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 update Categories set IsDisplay = 1 where Id IN ( select distinct c.Id from Categories c inner join Supplier_Category as sc on sc.CategoryId = c.Id inner join suppliers as s on s.Id = sc.SupplierId where c.Id = @CountryId and s.IsActive = 1 and s.State = 'Success' )
J'ai deux questions :
- Comment améliorer les performances de cette procédure qui prend du temps (Les inner join c'est méchant mais je n'ai pas d'autres solutions étant donné mon niveau en SQL...)
- Comme le montre cette procédure j'active les catégories dont le fournisseur associé est actif également.
Comment puis-je activer aussi les catégories parents ?
En effet une catégorie peut descendre d'une arborescence de catégories définit grâce à la colonne Tree dans la table Categories.
Une valeur de cette colonne pourrait être '1.2', dans ce cas-là, la catégorie avec ce champ a pour parent la catégorie avec l'id 2 qui elle-même a pour parent la catégorie avec l'id 1. Ma catégorie actuelle est donc au niveau 3.
En conclusion j'arrive donc à activer ma catégorie de niveau 3 mais il faudrait activer les catégories parents associées à savoir celles avec les id 1 et 2.
Merci par avance !
Partager