Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Outils
Outils Forum d'entraide sur les outils pour MySQL. Avant de poster -> Outils MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/09/2007, 13h25   #1
Invité de passage
 
Inscription : septembre 2007
Messages : 3
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 3
Points : 1
Points : 1
Par défaut Optimisation mysql architecture

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
drclic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2007, 13h32   #2
Membre éprouvé
 
Avatar de nounetmasque
 
Inscription : janvier 2003
Messages : 491
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 491
Points : 488
Points : 488
Je te conseille de faire trois tables distinctes :
  • table 1 : les informations personnelles + id_domaine + id_niveau
  • table 2 : le lien entre ton id_domaine et le libellé
  • table 3 : le lien entre ton id_niveau et le libellé

Pour la table 3, il faudra classer tes libellé par pertinence (0: expert, 1:moyen 2:nul).

Cette architecture n'est peut-être pas optimale mais te permettra de créer des index pertinents pour ta recherche.
__________________
"Dieu reste muet, si seulement nous pouvions convaincre l'être humain d'en faire autant."
nounetmasque est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h19.


 
 
 
 
Partenaires

Hébergement Web