IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

optimisation php mysql


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 3
    Points : 5
    Points
    5
    Par défaut optimisation php mysql
    Bonjour,

    j'ai un probleme d'optimisatin de requete, voir d'architecture mysql.

    J'ai une serie de donnees pour chaque personne dans une entreprise informatique.
    Pour chaque entree j'ai une bonne vingtaine de champs (une technologie informatique) avec un niveau associé(expert, bon, moyen, notions=
    Par exemple :


    Serge : oracle (expert) / unix (expert) / c (bon)/ php (notions) / sybase (notions) / powerbuilder (bon)/ etc ...
    antoine: unix(bon)/ c(bon) / visuals basic (bon)/ etc ...
    stephane : php (expert)/ mysql (moyen) / linux etc ...

    Imaginez une base de données consequante (plusieurs milliers de noms) et une vingtaine de champs chacun (avec a chaque fois un niveau entre parenthese ou dans un autre champs).

    j'ai un outil de recherche mais je souhaite classer par pertinence ... si je recherche "oracle" chez un employé, je souhaite avoir en premiere reponse les experts, puis le sbons, puis le moyens, puis les notions. Si je recherche oracle+unix, je souhaite les experts dans les deux, puis expert/bon, puis etc....

    Le soucis est le temps de traitement pour obtenir les reponses classees puisque chaque terme recherchés (oracle, unix etc ...) peuvent-etre dans n'importe quel champs (1 a 20 ) .... donc il faut tester tout les champs(c'ets le plus long) , extraire le niveau et comparer (la dessus pas de soucis apriori) ...
    quelqu'un a -t-il une idee ?

    J'ai pense creer une base avec tous les termes que je peux rechercher et noter le niveau du candidat pour chaque (une sorte d'index)... il y aura beaucoup de termes mais au moins ils seront toujorus au meme endroit et plus accessibles.

    Est-ce une solution ? y-a-til plus simple ? une astuce ?


    Merci d'avance,
    Stephane.
    Configuration: Windows XP
    Internet Explorer 6.0

  2. #2
    Membre habitué
    Avatar de Amnesiak
    Profil pro
    Inscrit en
    Août 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2002
    Messages : 137
    Points : 151
    Points
    151
    Par défaut
    Bonjour,

    Si tu as la possibilité de modifier la structure de la base de données, je pense que revoir la manière dont elle est modélisée serait une bonne chose. Je verrai plutôt une séparation entre les utilisateurs et leurs compétences, matérialisée par 2 tables distinctes. La table des compétences ne comporterait que 3 champs :
    • l'identifiant de l'utilisateur, pour la jointure
    • le domaine de compétence (oracle, unix, php, ...)
    • le niveau (10=expert, 5=moyen, 1=notions, 0=nul, ...)

    Tu aurais donc une vingtaine de lignes dans cette table, au lieu d'une vingtaine de colonnes dans ta table des utilisateurs. La clé primaire pourrait être composée des 2 premiers champs ce qui t'assure l'unicité d'un domaine par utilisateur, et le fait d'utiliser une valeur numérique pour stocker le niveau te permet beaucoup plus de souplesse pour tes classements.

    En espérant que cela t'apporte quelques idées...
    A+

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    Je suis du meme avis, je te conseillerai d'adapter la structure à tes besoins et d'essayer de pas faire un fourre tout dans les champs (sinon à quoi bon une bdd?). Car en terme de performance et de facilité de gestion de ton information (tri, recherche, etc...), ce sera le jour et la nuit.

Discussions similaires

  1. [MySQL] Optimisation de scripts PHP/MySQL
    Par DgG dans le forum PHP & Base de données
    Réponses: 368
    Dernier message: 20/11/2013, 18h59
  2. [MySQL] Optimisation Php Mysql
    Par sigmoun dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 10/11/2007, 21h04
  3. [Cookies] php + mysql + fpdf optimisation
    Par bijour dans le forum Langage
    Réponses: 2
    Dernier message: 09/10/2006, 15h17
  4. [SGBD] Optimisation PHP/MySQL
    Par freesurfer dans le forum Requêtes
    Réponses: 3
    Dernier message: 13/04/2006, 13h46
  5. [MySQL] [Script]Optimisation de scripts Php/MySQL (2)
    Par copy dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 27/08/2004, 08h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo