Fork me on GitHub




« 1 (2)


Re: sqlfile dans xoopsversion.php
Team FrXoops
Inscrit: 14/05/2004 22:32
Messages: 2554
Pour la mise à jour et la suppression ok, mais pour la consultation, ça permet de transférer le traitement sur le serveur de base de données de manière plus efficace il me semble, surtout quand on a des vues qui nécessitent plusieurs tables comme par exemple :
create VIEW `%1$s_media_rs__sommaire_plus` AS 
select ts.*, 
       
tf.nom_fr AS feuille_nom_fr,
       
tf.nom_en AS feuille_nom_en,
       
td.nom_fr     AS difficulte_nom_fr,
       
td.libelle_fr AS difficulte_libelle_fr,
       
tm.titre_org
       
tm.titre_fr_num
       
tm.titre_en_num
       
tm.auteurs_list,
       
tm.auteurs_html,
       
ttp.ordre AS ordre_typepage
FROM 
%1$s_media_rs__sommaire ts 
     LEFT JOIN 
%1$s_media__feuille tf     ON ts.idFeuille     tf.idFeuille
     LEFT JOIN 
%1$s_media__difficulte td  ON ts.idDifficulte  td.idDifficulte
     LEFT JOIN 
%1$s_media_rs__media_base tm       ON ts.idMedia       tm.idMedia
     LEFT JOIN 
%1$s_media__typepage ttp ON ts.idTypepage ttp.idTypepage;


Citation :
Cette solution est la plus efficace pour l’évolution dans le temps et celle préconisée par xoops pour récupérer, insérer et supprimer les données dans la bdd.

ça je n'en suis pas convaincu,

mais comme tu dis:
cela est une question de préférences

Posté le : 19/12/2020 23:02

Ne pas perdre patience, même si cela semble impossible, c'est déjà de la patience.
Origami
Conseil des Sages
Sur gitHub
Partager Twitter Partagez cette article sur GG+
Re: sqlfile dans xoopsversion.php
Semi pro
Inscrit: 08/03/2006 21:08
Messages: 1176
le système de classe permet de générer la requête automatiquement. Les jointures de tables sont possible également. C'est une approche orientée object qui est très intéressante. Dans certains cas spécifiques j'utilise aussi une écriture manuelle de mes requêtes mais cela représente 1% de mes besoins(jointures spécifiques). Je penses que je ferai un petit tuto sur ce sujet si ça t'intéresse pour éventuellement essayer une autres méthodologie?
Par rapport a la demande initiale,le sujet est résolu car il est possible d'insérer des données à l'installation en suivant le tutoriel proposé.

Posté le : 19/12/2020 23:41
Partager Twitter Partagez cette article sur GG+
Re: sqlfile dans xoopsversion.php
Team FrXoops
Inscrit: 14/05/2004 22:32
Messages: 2554
Le tuto en intéressera sans doute plus d'un, mais pour avoir fait des tests de performance sur des gros volumes, les classes même si elles sont pratiques, ne sont pas aussi performante que du bon vieux sql.
Mais bon ça n'engage que moi.

Posté le : 20/12/2020 09:42

Ne pas perdre patience, même si cela semble impossible, c'est déjà de la patience.
Origami
Conseil des Sages
Sur gitHub
Partager Twitter Partagez cette article sur GG+
Re: sqlfile dans xoopsversion.php
Semi pro
Inscrit: 08/03/2006 21:08
Messages: 1176
Je penses que tu n'as pas compris de quoi je parles. Tu ne peux pas avoir de différence de performance avec la bdd car le résultat final est identique. C'est la manière d'y arriver

Je vais prendre un exemple parlant avec le résultat suivant:

Citation :
SELECT o.*, l.* FROM xmtutorial_tutorial AS o LEFT JOIN xmtutorial_category AS l ON o.tutorial_cid = l.category_id ORDER BY tutorial_weight ASC, tutorial_title ASC LIMIT 0, 15



Une écriture standard va exécuter une requête sql à l'aide de la fonction:

$sql "ma requête";

$GLOBALS['xoopsDB']->queryF($sql);


Dans le cas des classes le code est le suivant:
// Criteria
        
$criteria = new CriteriaCompo();
        
$criteria->setSort('tutorial_weight ASC, tutorial_title');
        
$criteria->setOrder('ASC');
        
$criteria->setStart($start);
        
$criteria->setLimit($nb_limit);
        
$tutorialHandler->table_link $tutorialHandler->db->prefix("xmtutorial_category");
        
$tutorialHandler->field_link "category_id";
        
$tutorialHandler->field_object "tutorial_cid";
        
$tutorial_arr $tutorialHandler->getByLink($criteria);


Ce code va générer exactement la même requête donc tu ne peux avoir de performance meilleure ou moins bonne par rapport à la bdd.

Cette méthode est plus lourde de prime à bord mais permet de mettre en place une structure très souple pour faire évoluer son module. Je ne veux pas te convaincre car si tu préfère la première méthode, elle est parfaitement adaptée et marche très bien.
Cette méthode apporte un niveau de sécurité bien plus important dans le cas de l'écriture dans la bdd car les données sont filtrées automatiquement avant insertion.

Posté le : 20/12/2020 11:31
Partager Twitter Partagez cette article sur GG+
Re: sqlfile dans xoopsversion.php
Team FrXoops
Inscrit: 14/05/2004 22:32
Messages: 2554
Si j'ai très bien compris, et je maintien qu'il y a une sacré différence, mais ne vais pas m’appesantir sur ce sujet qui risque de devenir très technique.
JJdai

Posté le : 21/12/2020 00:18

Ne pas perdre patience, même si cela semble impossible, c'est déjà de la patience.
Origami
Conseil des Sages
Sur gitHub
Partager Twitter Partagez cette article sur GG+
Re: sqlfile dans xoopsversion.php
Semi pro
Inscrit: 08/03/2006 21:08
Messages: 1176
Pas de soucis pour moi si c'est technique,j'aime bien comprendre surtout si je me trompe.

Peux-tu m'expliquer comment 2 même requêtes peuvent avoir une grande différence?

Car au final les requêtes sont identiques avec les 2 méthodes car la classe utilise la première pour exécuter la requete

Posté le : 21/12/2020 00:35
Partager Twitter Partagez cette article sur GG+

 Haut   Précédent   Suivant
« 1 (2)



Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

40 Personne(s) en ligne (18 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 40 | Plus ...