Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 8 sur 8
  1. #1
    Invité de passage
    Inscrit en
    juillet 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : juillet 2009
    Messages : 8
    Points : 1
    Points
    1

    Par défaut Search Engine : Zend VS SQL

    Bonjour a tous !

    Je suis en train de developper une base de donnees pour un reseau. Pour faire simple cette base ressence les partenariats etablis entre un membre du reseau et une entreprise donnee. Chaque partenariat est delimite dans le temps apr une date de debut et une date de fin. Derniere info utile : la base est amenee a avoir plusieurs milliers d'entrees.

    Je dois faire un moteur de recherche. Il doit, outre des fonctionnalites classiques, etre capable de retourner l'ensemble des entreprises n'ayant pas etabli de partenariat avec le reseau entre telle date et telle date.

    Pour faire ce moteur de recherche soit j'utilise Zend Framework soit j'utilise des requetes SQL affreusement longues (avec des jointures de tables, etc...). S'il n'y avait pas les dates a prendre en compte j'aurais opte pour Zend Frameworks sans hesiter. Mais je ne sais pas si Zend peut gerer la requete particuliere que j'ai exposee en paragraphe2...

    Que me conseillez-vous ?

    Merci pour votre aide !

    Raphael

  2. #2
    Membre régulier
    Inscrit en
    juin 2009
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : juin 2009
    Messages : 74
    Points : 73
    Points
    73

    Par défaut

    Zend framework est un ensemble d'outils facilitant notamment la gestion des données de la base de données. Tu peux utiliser zend framework pour ta recherche, mais il faudra utiliser le composant Zend_Db qui, avec ce que tu lui dira, construira une requête (ou plusieurs) qui fera ce que tu lui demande.
    Mais c'est toujours a toi de créer la structure de ta requête (avec une syntaxe différente). Si tu as des jointures il faudra les indiquer à Zend framework.

    Si tu as besoin de rapidité, utilise le SQL directement.
    Sinon tu peux utiliser le Zend framework, mais il ne va deviner la structure de ta base et faire tout le boulot tout seul sans un minimum d'indication et tu devra tout de même "former" ta requête.

    Quand aux dates, je ne vois pas le problème avec Zend framework ... il possède une classe Zend_Date d'ailleurs très pratique

  3. #3
    Invité de passage
    Inscrit en
    juillet 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : juillet 2009
    Messages : 8
    Points : 1
    Points
    1

    Par défaut

    Merci pour ces eclairages !

    Bien sur je devrais construire mes requetes Zend. Je reformule ma question (desole de ne pas avoir ete clair).

    Etant donnee la requete que j'ai citee et etant donnee que la base aura quelques milliers d'entrees, quelle strategie adopter pour avoir le moteur de recherche le plus rapide possible ? Utiliser Zendframework (et donc un index en texte brut) OU utiliser SQL directement (via Propel)?

    En lisant ta reponse je vois que tu penses qu'SQL sera plus rapide. Quels sont les avantages de Zend Framowork alors ?

    Merci !

  4. #4
    Modérateur
    Avatar de grunk
    Homme Profil pro Olivier
    Dév. Web / Android
    Inscrit en
    août 2003
    Messages
    3 075
    Détails du profil
    Informations personnelles :
    Nom : Homme Olivier
    Âge : 30
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Dév. Web / Android
    Secteur : Industrie

    Informations forums :
    Inscription : août 2003
    Messages : 3 075
    Points : 6 875
    Points
    6 875

    Par défaut

    Si tu n'as à effectuer qu'un moteur de recherche (en gros une requete modulaire ) et ta requete de recherche sur les société spécifique , y me semble pas nécessaire d'implémanter ZF ou même un ORM comme propel.

    Faut quand même pas oublier que ce sont des surcouches qui vont de toute manière ralentir le traitement initial.

    Bref si ton moteur de recherche s'intègre dans un projet existant => utilise la solution du projet sinon fait au plus simple.
    Pry Framework php5

  5. #5
    Membre régulier
    Inscrit en
    juin 2009
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : juin 2009
    Messages : 74
    Points : 73
    Points
    73

    Par défaut

    Utiliser le SQL sera le plus rapide en effet car il s'exécutera directement : tu créé une chaine de caractère -> requête -> récupération du résultat.

    Zend framework, lui, implémente une "couche" par dessus tout ça, et agi comme (ou presque) un ORM (Object Relationnal Mapping). C'est à dire qu'il te permet d'avoir une représentation de ta base et des données qu'elle contient sous forme d'un modèle objet, et ceci avec très peu de code. Ainsi Zend nous offre une belle collection de classes avec leurs méthodes qui permettent des accès rapide aux données (je pense notament aux méthodes dites "magiques", j'adore ).
    Ainsi Zend_Db apporte une grande aide et simplifie pas mal les requêtes courante et simples une fois qu'un travail en amont a été fait pour représenter le modèle. Pour les requêtes plus compliquées, il devient vite nécessaire de mettre les mains dans le cambouis !
    Par contre, le revers de la médaille est la quantité de requêtes effectuées. En effet, Zend_Db va récupérer les informations de la base et des tables concernées via des requêtes, puis construire la requête en fonctions des paramètres avant de l'exécuter. Ensuite il ne renvoie pas le résultat directement, mais construit un Zend_Db_ResultSet qui t'es ensuite retourné. Tout ceci prend donc plus de temps

    Ici, comme l'a dit grunk, utilise la solution implémentée dans ton projet et va au plus simple. Si tu n'utilisais pas le zend framework ne l'intègre pas juste pour ça.

  6. #6
    Invité de passage
    Inscrit en
    juillet 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : juillet 2009
    Messages : 8
    Points : 1
    Points
    1

    Par défaut

    En fait je vais utiliser symfony pour mon projet donc propel.

    Tu me conseilles donc de faire mon moteur de recherche "a la main" plutot que d'implementer en plus le Zend Framework ?

  7. #7
    Membre régulier
    Inscrit en
    juin 2009
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : juin 2009
    Messages : 74
    Points : 73
    Points
    73

    Par défaut

    Oui. Plus tu utilise d'outils, plus le développement est rapide et facile, mais plus c'est lent à l'exécution !

    En plus je ne connais pas bien symphony, mais il me semble que on y retrouve à peu près les mêmes fonctionnalités que dans ZF. Ca ferait un peu doublon d'utiliser les deux ...

  8. #8
    Invité de passage
    Inscrit en
    juillet 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : juillet 2009
    Messages : 8
    Points : 1
    Points
    1

    Par défaut

    Merci pour votre aide !

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •