Bonjour,

J'ai une base de données qui contient des marques, chaque marque appartenant à une (ou plusieurs) activité, elle même dépendant d'un secteur.

A chaque fois que je fais un select de mes marques en fonction du secteur je dois me coltiner les jointures de 4 tables ! (marque, marque_has_activite, activite, secteur).

J'ai déjà demandé ici si ma requête était "optimale" et on m'a répondu que oui, pourtant quand j'affiche mes marques triées par secteur je trouve ça lent...

J'ai cherché du côté des index mais j'avoue que je trouve le concept bien flou ! Et puis je me suis dit aussi, pourquoi ne pas faire une vue avec chaque marque + ses activités + ses secteurs et là indexer quelque chose.

Seul hic : Comment faire ça ? Quand la vue doit-elle être mise en place ? Quand doit elle-être maj ? Et sur quoi mettre mes index ??

Please aidez moi !

Je vous joins la requête que j'utilise fréquemment : (enseigne = marque)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
SELECT DISTINCT nom, idenseigne
            FROM enseigne as e
            JOIN enseigne_has_activite as eha ON eha.enseigne_idenseigne = e.idenseigne
            JOIN activite as a ON a.idactivite = eha.activite_idactivite
            JOIN secteur as s ON s.idsecteur = a.secteur_idsecteur
            WHERE idsecteur = ma variable id secteur
            AND contrat_pub = 'y'
            AND statut_idstatut != 3
Peut-être même voyez vous d'autres moyens de faire ?