WRInaute discret
Bonjour à tous,
Voilà mon problème, j'ai mis en place une sorte d'annuaire.
Chaque élément peut se trouver dans un maximum de 10 catégories, category_id1, category_id2, category
_id3... ainsi de suite sont donc des champs dans la table qui regroupe mes éléments.
J'ai aussi une table regroupants toutes les catégories avec une hiérarchie à un niveau mère/fille.
Sur la page d'affichage d'un catégorie, je cherche tous les éléments qui se trouvent dans cette catégorie ou qui ont des filles dans cette catégorie.
Ca donne quelquechose comme :
Et ainsi de suite pour categor_id5,6,7,8,9....
Cette requête fonctionne bien mais cette page étant de plus en plus demandée, mon hébergeur a tiré un peu la sonette d'alarme en me demandant d'optimiser ma requête.
C'est là que j'ai besoin de vous, toute idée est la bienvenue...[/code]
Voilà mon problème, j'ai mis en place une sorte d'annuaire.
Chaque élément peut se trouver dans un maximum de 10 catégories, category_id1, category_id2, category
_id3... ainsi de suite sont donc des champs dans la table qui regroupe mes éléments.
J'ai aussi une table regroupants toutes les catégories avec une hiérarchie à un niveau mère/fille.
Sur la page d'affichage d'un catégorie, je cherche tous les éléments qui se trouvent dans cette catégorie ou qui ont des filles dans cette catégorie.
Ca donne quelquechose comme :
Code:
OR (category_id2 = 49 OR
category_id2 IN (SELECT category_id FROM category WHERE par_category_id = 49))
OR (category_id3 = 49 OR
category_id3 IN (SELECT category_id FROM category WHERE par_category_id = 49))
OR (category_id4 = 49 OR
category_id4 IN (SELECT category_id FROM category WHERE par_category_id = 49))
Et ainsi de suite pour categor_id5,6,7,8,9....
Cette requête fonctionne bien mais cette page étant de plus en plus demandée, mon hébergeur a tiré un peu la sonette d'alarme en me demandant d'optimiser ma requête.
C'est là que j'ai besoin de vous, toute idée est la bienvenue...[/code]