Consultez la formation SEO spéciale Wordpress
par WebRankInfo / Ranking Metrics

Messages: 520

Enregistré le: 30 Juil 2014

Message le Mer Mai 24, 2017 18:52

Bonjour,

J'ai une grosse requête à faire là, qui va chercher sur au moins 6 tables d'un coup. Ca va faire une sorte de gros arbre super touffu.

Je sais pas si c'est une bonne idée. Et ça va être casse-tête. Faisable, mais casse-tête.

Je me demande si je ne devrais pas plutôt faire une requête simple sur une ou deux tables, puis à l'intérieur de la boucle while, refaire une requête avec une nouvelle boucle while dans laquelle je refais une requête.

Qu'est-ce que vous en pensez ?
Haut
7 Réponses
Messages: 37898

Enregistré le: 7 Juil 2004

Message le Mer Mai 24, 2017 19:10

Bonjour,
Alorsladaccord a écrit:Qu'est-ce que vous en pensez ?

Que ce soit l'un ou l'autre, le problème sera la possible génération d'erreur, s'il y a une erreur à un moment.

Cordialement.
Haut
Messages: 430

Enregistré le: 1 Avr 2016

Message le Mer Mai 24, 2017 20:50

Dans des bases de données relationnelles, la solution est souvent de multiplier les tables: tes requêtes spécifiques ne se baserons plus sur des grosses tables mais sur une multitutes de petites.
J'utilise une "gestion commerciale" que j'ai programmé pour moi (elle fait un peu plus, ticket de caisse, déclaration TVA, inventaire, ...) . J'utilise plus de 30 tables ... certaines sont liées en PHP, d'autres pas. J'ai simplement séparé les clients des fournisseurs, les familles de produits des articles, les codes comptables sont créés quand je met un produit en fonction de la famille MAIS, les codes comptables sont aussi repris dans la fiche produit (donc modifiable pour un seul produit). Créere des bases de données, c'est d'abord beaucoup de réflexion.
Haut
Messages: 8451

Enregistré le: 14 Mai 2003

Message le Mer Mai 24, 2017 21:36

Dans mon dernier site perso, pour afficher une liste de prix j'ai des requêtes qui tapent dans plus de 10 tables.
Mais une fois que les relations (ForeignKey, OneToOne, ManyToMany) sont définies dans les models, tout est transparent, même pas besoin de taper la moindre ligne de SQL.
Haut
Messages: 187

Enregistré le: 1 Oct 2014

Message le Jeu Mai 25, 2017 16:17

la réponse m'intéresse aussi en terme de performance...
Avant je ne faisais jamais de jointure et je relançais une requête pour chaque jointure, maintenant j'utilise les jointures, d'après le peu de recherche que j'ai que j'ai les jointures sont mieux niveaux performances sauf certains cas spécifiques
Haut
Messages: 520

Enregistré le: 30 Juil 2014

Message le Ven Mai 26, 2017 13:59

Salut à vous tous,

patrick_lejeune a écrit:bases de données, c'est d'abord beaucoup de réflexion.

Oui, le problème, c'est que souvent, au fur et à mesure que l'on programme, on se rend compte que ceci et cela peut être fait différemment, ou alors que l'on peut en profiter pour ajouter quelque chose et donc au final, le projet n'est plus ce qu'il était au départ.
Vous allez me dire que je ne sais pas planifier un projet informatique, mais reconnaissez qu'un programmeur qui rend son travail dans les délais prévus, c'est aussi rare qu'un ticket de loterie gagnant.

spout a écrit:Dans mon dernier site perso, pour afficher une liste de prix j'ai des requêtes qui tapent dans plus de 10 tables.
Mais une fois que les relations (ForeignKey, OneToOne, ManyToMany) sont définies dans les models, tout est transparent, même pas besoin de taper la moindre ligne de SQL.

OneToOne, ManyToMany... On en apprend tous les jour (surtout avec spout) ! A part les clefs étrangères, je ne connais rien d'autre.


Mais j'ai peut-être mal posé le problème, en fait. Car je compte utiliser la POO pour ce site (premier essai).
Donc en fait, je vais créer une classe, puis générer des objets (des articles en fait) dont les paramètres seront définis par la variable retournée par l'URL (rien que de très classique).
Par suite, le mieux n'est-il pas tout simplement, pour chaque attribut de l'objet, de faire une requête qui permette d'en définir la valeur ?

Ca me parait beaucoup plus fluide lors de la lecture du script.
SInon, il faut que je fasse une grosse requête, puis dans la boucle while, définir la valeur de chaque variable, je trouve que ça fait grosse boule compact, c'est moche.
Haut
Messages: 430

Enregistré le: 1 Avr 2016

Message le Ven Mai 26, 2017 17:27

Alorsladaccord a écrit:On en apprend tous les jour (surtout avec spout) !

Clair que Spout maitrise des langages et des techniques que 90% des utilisateurs de WRI n'on même jamais entendu parler.
Haut
Messages: 520

Enregistré le: 30 Juil 2014

Message le Sam Mai 27, 2017 13:50

Bon en même temps, c'est pas tous notre boulot principal.
Haut

Formation recommandée sur ce thème :

Formation SEO spéciale Wordpress : apprenez à optimiser le référencement naturel d'un site fait avec Wordpress... Formation Ranking Metrics animée par un expert SEO / Wordpress.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.