• STATISTIQUES
  • Il y a eu un total de 0 membres et 17136 visiteurs sur le site dans les dernières 24h pour un total de 17 136 personnes!
    Membres: 2 435
    Discussions: 3 585
    Messages: 32 832
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [FR] dcode
    dcode.fr est le site indispensable pour décoder des messages, tricher aux jeux de lettres, résoudre des énigmes...
    Outils / Add-on
    [EN] CS Tutoring Center
    Site de challenge spécialisé dans les challenges de programmation C++ et java cependant, d'autres langages pe...
    Challenges
    [EN] w3challs
    Ce site propose différents types de défis informatiques: piratage, craquage, cryptographie, stég...
    Hacking
    [EN] This is legal
    Basic: 10, Realistic: 5, Programming: 1, Bonus: 11, SQL: 2, Encryption: 6, Application: 4, User Contributed: 3
    Challenges
    [FR] Newbie Contest
    Crackme: 35, Cryptographie: 49, Hacking: 27, Javascript/Java: 17, Logique: 31, Programmation: 23, Stéganographie: 53
    Challenges
    [EN] Lost-chall
    Site de challenge présenté sous la forme de différente saison. Pour passer une saison vous devez avoir accumulÃ...
    Challenges
    [EN] Hack This Site
    Hack This Site est considéré comme un réel terrain d'entraînement légal pour le...
    Hacking

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!

    €



Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[Sql] moteur de recherche par affinitées
07-05-2012, 04h46 (Modification du message : 19-11-2012, 18h50 par InstinctHack.)
Message : #1
Saitek Hors ligne
Membre
*



Messages : 30
Sujets : 4
Points: 0
Inscription : Oct 2011
[Sql] moteur de recherche par affinitées
Je dois rendre un truc assez compliqué dans pas longtemps et je vois pas comment le faire U_U

Dans mon site j'ai deux groupes de membres, des élèves et des profs. Le but du site est de permettre aux élèves de trouver le meilleur prof en fonction de ce qu'ils recherchent.
Chaque prof est doté de plusieurs compétences (dans ma base de données les champs : competence0 à competence9).
L'élève doit pouvoir à travers le moteur de recherche choisir le prof qui correspond le plus à ses besoin.
Je pense à une page accessible qu'aux élèves avec une combobox de toutes les compétences disponibles des profs.

Comment je peux choisir le bon professeur ?
En fait, comment regarder lequel a le plus de compétences (competence0 à competence9) par rapport au choix de l'élève.
Serait-ce une requête du style SELECT competence0, competence1 (jusqu'à 9) FROM lesprofs WHERE competence1 = laCaseCoché1 OR competence2 = laCaseCoché2

Les profs pourraient ajouter eux-mêmes leur compétences ce qui poserait alors problème =(

Question bonus : Je pense qu'il y aura énormément de compétences différentes. Comment faire varier le nombre de champs en fonction du prof ? (genre un tel prof aura des champs competence0 a competence5 tandis que l'autre aura de competence0 à competence153 ) ?
Je ne suis pas certain que définir des champs compétence+numéro soit très propre. Vous en pensez quoi ?
+1 (0) -1 (0) Répondre
07-05-2012, 21h38 (Modification du message : 08-05-2012, 10h08 par supersnail.)
Message : #2
supersnail Hors ligne
Éleveur d'ornithorynques
*******



Messages : 1,614
Sujets : 72
Points: 466
Inscription : Jan 2012
RE: moteur de recherche par affinitées
Bonjour,

Effectivement définir des champs "competeceX" est dégueu et risque de devenir un joyeux bordel :>
Regarde du côté de l'opérateur LIKE en SQL, ça devrait te donner des idées (enfin j'espère :þ).

Sinon tu peux toujours faire une table "competences" qui est reliée à l'uid de l'utilisateur (avec un truc du genre).

Code :
+----------------------+                      +-----------+
| professeur           |                      |competences|
+----------------------+                      +-----------+
| uid                  | <----------          | cid       |
| autres champs        |           ---------> | uid       |
+----------------------+                      | competence|
                                              +-----------+
Mon blog

Code :
push esp ; dec eax ; inc ebp ; and [edi+0x41],al ; dec ebp ; inc ebp

"VIM est merveilleux" © supersnail
+1 (0) -1 (0) Répondre
08-05-2012, 09h18
Message : #3
Booster2ooo Hors ligne
Contributeur
*****



Messages : 165
Sujets : 14
Points: 63
Inscription : Aug 2011
RE: moteur de recherche par affinitées
Je plussoie aaSSfxxx, il est nettement plus intelligent de créer une table de relations entre les prof et leurs compétences. Par contre, j'ajouterai une table indépendante de compétences et une table de relations:
[Profs] Id (clé primaire autoincrémentée)| Nom | Prenom | Adresse ...
[Compétences] Id (clé primaire autoincrémentée)| Nom | Descriptif ...
[ProfComp] ProfId | CompId

Tu peux ainsi avoir
Profs
1| aaSSfxxx
2| Saitek
3| Cybersee

Competences
1| HTML
2| ASM
3| Java
4| Reseau
5| TheGame

ProfComp
1|1 (aaSSfxx - HTML)
1|2 (aaSSfxx - ASM)
2|1 (Saitek - HTML)
2|4 (Saitek - Reseau)
2|5 (Saitek - TheGame)
3|1 (CyberSee - HTML)
3|2 (Cybersee - ASM)
...

Mots clés pour tes recherches Google:
primary key (clés primaires)
foreign key (clés étrangères)
relations

Enjoy Wink
+1 (0) -1 (0) Répondre
08-05-2012, 11h36
Message : #4
EpicOut Hors ligne
Membre actif
*



Messages : 121
Sujets : 10
Points: 23
Inscription : Feb 2012
RE: moteur de recherche par affinitées
Booster: Pute
Plein de mouches peuvent rentrer en boucle close.
[Image: vQs9wRu.png]
+1 (0) -1 (0) Répondre
09-05-2012, 23h42
Message : #5
Saitek Hors ligne
Membre
*



Messages : 30
Sujets : 4
Points: 0
Inscription : Oct 2011
RE: moteur de recherche par affinitées
Merci pour vos réponses. LIKE me dit bien quelque chose effectivement. Je vais faire une table prof, une compétences et une qui fera la relation entre les deux. Ce sera bien mieux Smile

Je vais déguster avec les clés je sens mais c'est tout de même bien sympa.
Et aussi sur uid / cid parce que là je suis un peu perdu Confusedifflote:
+1 (0) -1 (0) Répondre
10-05-2012, 08h59
Message : #6
Booster2ooo Hors ligne
Contributeur
*****



Messages : 165
Sujets : 14
Points: 63
Inscription : Aug 2011
RE: moteur de recherche par affinitées
Tu n'es pas obligé de jouer avec des clés mais c'est nettement plus propre. Tu peux faire (schématiser):
int profId = SELECT id FROM professeurs WHERE name = 'Dupont' // Recup l'id de M. Dupont
array[int] compId = SELECT cid FROM profcomp WHERE pid = profId // Recup un tableau d'id de compétences de M. Dupont (via son Id)
for(cid in compId) compName = SELECT name FROM competences WHERE id = cid // Pour chaque id de compétence, récup son nom

Après, toutes les recherches se font sur des ID, tu cherche dans la table de relations les ID des compétences qui t'intéressent et tu retourne les profs correspondants.

(mais c'est quand mm bcp mieux avec des clés étrangères je pense Wink )
+1 (0) -1 (0) Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut