Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1715 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Question optimisation

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Question optimisation

n°2057436
elpibedeor​o81
Posté le 17-02-2011 à 01:40:52  profilanswer
 

Bonjour,
 
je vous explique rapidement mon problème:
 
J'ai 2 tables: 1 table de "rubriques" et une table de "sous rubriques" contenant la clé de la rubrique parente..
 
dans ma page php, je dois afficher toutes les rubriques avec leurs sous rubriques. mais quelle est la meilleure procédure?
 
J'ai pensé à :
 
1 requete vers la table "rubriques"
1 requete vers la table "sous-rubriques"
1 boucle sur les résultats de "sous rubriques" en stockant les résultats dans un tableau style $rubrique[$result->rubrique_id]=$sous_rubrique
 
et apres affichage avec foreach
comme ca on a que 2 requetes SQL
 
en fait je voulais savoir si c'était la meilleure solution ou s'il y a une technique bien plus simple et optimisée..
 
Je vous remercie!

mood
Publicité
Posté le 17-02-2011 à 01:40:52  profilanswer
 

n°2057450
esox_ch
Posté le 17-02-2011 à 08:57:38  profilanswer
 

Pourquoi ne pas faire simplement une jointure SQL ?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°2057483
elpibedeor​o81
Posté le 17-02-2011 à 11:40:21  profilanswer
 

parce que:

 

je veux récupérer 3 paramètres dans ma table rubriques
je peux avoir beaucoup de sous rubriques

 

exemple:
30 rubriques, chacun 20 sous rubriques

 

en utilisant ma méthode:
- 1 requete simple sur rubriques pour récup 30 résultats
- 1 requete simple sur sous rubriques pour récup 600 résultats

 

en faisant une jointure, j'ai toujours 600 résultats à trouver, mais je me dis que la requete sera bien plus gourmande, à chaque résultat j'aurai:

 

id_sous_rubrique / id_rubrique / nom_rubrique / date_creation_rubrique / createur_rubrique / nom_sous_rubrique / champs de sous rubriques

 

les champs en gras étant les champs récupéres grace à la jointure...

 

c'est justement ce que je me pose: dans un souci d'optimisation, quelle méthode choisir?


Message édité par elpibedeoro81 le 17-02-2011 à 11:40:57
n°2057490
rufo
Pas me confondre avec Lycos!
Posté le 17-02-2011 à 11:52:18  profilanswer
 

Une remarque en passant : la notion de rubrique/sous-rubrique est une arborescence. Il n'y a donc pas besoin de 2 tables pour ça. 2 modélisations possibles :
1) 1 table avec comme clé étrangère "ParentID" qui pointe en fait sur la même table, sur la rubrique parente. Avantage, c'est facile à gérer lors des insert/update, par contre, pour récupérer toute l'arbo ou une partie de la filiation, faut faire de la récursivité (donc plusieurs requêtes).
 
2) la représentation intervallaire : http://sqlpro.developpez.com/cours/arborescence/ et http://dev.mysql.com/tech-resource [...] -data.html
Avantage, 1 seule requête pour récupérer toute ou partie de l'arbo, inconvénient, lors d'un insert/update, faut recalculer les intervalles.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2057492
ccp6128
Syntax error
Posté le 17-02-2011 à 11:56:33  profilanswer
 

Tu peux filtrer les champs que tu veux récupérer, tu n'es pas obligé de faire un SELECT *.
 
Penses tu sérieusement que les mecs qui codent un SGBD sont tellement nuls qu'en recodant leur boulot en PHP tu feras de l'optimisation ?
 
N'essaie jamais d'optimiser tant que tu ne maitrises pas encore correctement les outils de base à ta disposition. Ce sera toujours contre productif. Et si un jour quelqu'un doit repasser derrière, il aura envie de se tirer une balle.

n°2057496
rufo
Pas me confondre avec Lycos!
Posté le 17-02-2011 à 12:06:19  profilanswer
 

Et puis récupérer 30 ou 600 résultats, pour le SGBD, ça va pas faire une grosse différence au niveau perf (ça va se jouer à 0.01s) :/ Tu ferais mieux de revoir ta modélisation d'arborescence car avec ta solution, t'es limité à un niveau de sous-rubrique alors qu'avec mes 2 solutions, non.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Question optimisation

 

Sujets relatifs
question sur un constructeur[Joomla] Petite question : catégories
Optimisation ecriture dans BDD à partir d'un table HTML [résolu]optimisation de connexion php mysql
[resolu] Question sur Order by avec une date en francaisLocation et include : question sur le chemin en absolu [resolu]
Optimisation interface et nombre de fichiers[C++]Question optimisation.
Optimisation SQL + question [Réglé]Question optimisation (forum)...
Plus de sujets relatifs à : Question optimisation


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR