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

HyperFileSQL Discussion :

[WD14] je cherche une aide pour faire des tests sur des milliers des barèmes


Sujet :

HyperFileSQL

  1. #1
    Membre régulier
    Inscrit en
    Juillet 2005
    Messages
    478
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2005
    Messages : 478
    Points : 89
    Points
    89
    Par défaut [WD14] je cherche une aide pour faire des tests sur des milliers des barèmes
    salut,
    je suis entrain de creer une application pour notes (pour des sportifs) selon un bareme

    exemple de bareme
    épreuves de vitesse:
    30m depart---detente H---detente V---lancer---Note
    4"00 --- 2m50 --- 50cm --- 10m50 --- 5
    4"10' --- 2m40 --- 45cm --- 10m00 --- 4
    4"20' --- 2m30 --- 40cm --- 9m50 --- 3
    4"30' --- 2m20 --- 35cm --- 9m00 ---2
    4"40' --- 2m10 --- 30cm --- 8m50 --- 1
    et beaucoup d'autres tableaux de barmes: course,natation,marche,sauts,lancer...(10 feuilles pleines)
    je viens de créer tous les fichiers HF qui vont contenir les performances des athlètes, mais je trouve une difficulté dans les tests selon les barèmes, c'est à dire faire les conditions selon les barèmes pour mettre les notes, je cherche une solution efficace à appliquer pour noter.

    c'est à dire faire la comparaison si Mr. X a fait 4"10' il va prendre 4
    si Mr.y a fait 4"40' i va prendre 1
    etc...
    et Mr.X par exemple va prendre des autres notes dans des autres épreuves

    et il y'a 10 feuilles (dans chaque feuille 30 tableaux selon l'épreuve) ou il y'a les baremes.
    alors pouvez-vous me proposer une solution pour que je ne fais pas des millions de tests dans mon code d'application pour chaque valeur.
    merci

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 2 579
    Points
    2 579
    Par défaut
    C'est d'abord un problème de modélisation (un cours ici : http://sqlpro.developpez.com/cours/m...?page=sommaire).

    Dans votre cas, l'énoncé serait le suivant :

    Il s'agit de noter des sportifs pour dans des disciplines. La note d'une épreuve se calcule selon un barème. Un barème par épreuve de la discipline est établi à partir d'une plage de résultats. Chaque plage d'un barème donne une note dans l'épreuve.
    Le modèle de données qui en découle, si on appliquait le cours que j'ai mis en référence, serait alors le suivant :

    SPORTIF = {IDSPORTIF, NOM, PRENOM, <AUTRES COLONNES >}
    DISCIPLINE = {IDISCLIPLINE, LIBELLE, <AUTRES COLONNES >}
    EPREUVE = {IDEPREUVE, #IDISCLIPLINELIBELLE, DATE, <AUTRES COLONNES >}
    BAREME_DISCIPLINE = {#IDDISCIPLINE, NOTE, RESULTAT_BORNE_MIN, RESULTAT_BORNE_MAX}
    RESULTAT_EPREUVE = {#IDSPORTIF, #IDEPREUVE, RESULTATOBTENU}
    Le modèle est donné à titre d'exemple pour saisir le concept, il doit être affiné pour saisir les subtilités de votre cahier des charges. Exemples : gérer plusieurs barèmes par discipline, pouvoir stocker différents types de résultat (temps, distance, ... ), ou bien un barème qui ne serait pas du type plage (min -> max).

    A l'exploitation, si vous avez entré vos sportifs, discliplines, épreuves, barèmes par disclipline et résultats aux épreuves, la requête suivante donnerait la note des sportifs par épreuve selon le barème préalablement renseigné :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    SELECT
    	SPORTIF.NOM,
    	SPORTIF.PRENOM,
    	DISCIPLINE.LIBELLE,
    	EPREUVE.DATE,
    	EPREUVE.LIBELLE,
    	RESULTAT_EPREUVE.RESULTAT, 
    	BAREME_DISCIPLINE.NOTE
    FROM RESULTAT_EPREUVE 
     
    	INNER JOIN SPORTIF
    		ON RESULTAT_EPREUVE.IDSPORTIF = SPORTIF.IDSPORTIF
     
    	INNER JOIN EPREUVE 
    		ON RESULTAT_EPREUVE.IDEPREUVE = EPREUVE.IDEPREUVE
     
    		INNER JOIN DISCLIPLINE 
    			ON EPREUVE.IDDISCLIPLINE = DISCLIPLINE.IDDISCLIPLINE
     
    			LEFT JOIN BAREME_DISCIPLINE
    				ON DISCLIPLINE.IDDISCIPLINE = BAREME_DISCIPLINE.IDDISCIPLINE 
    				AND RESULTAT_EPREUVE.RESULTATOBTENU >= BAREME_DISCIPLINE.RESULTAT_BORNE_MIN 
    				AND RESULTAT_EPREUVE.RESULTATOBTENU < BAREME_DISCIPLINE.RESULTAT_BORNE_MAX
    La jointure externe sur le barème permet de retournat une note NULL si aucun barème n'était défini pour le résultat qu'a obtenu le sportif.

    Les autres besoins habituels (ex : classement des sportifs par disclipline et par année) sont facilement couverts par de simple requêtes.

    Pour conclure, commencez par bien modéliser les données de votre problème et vous économiserez des lignes de code inutiles, des bugs et de mauvaises performance.

  3. #3
    Membre régulier
    Inscrit en
    Juillet 2005
    Messages
    478
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2005
    Messages : 478
    Points : 89
    Points
    89
    Par défaut
    merci vmolines, votre réponse me semble satisfaisante je vais essayer de l'appliquer en créant les tableaux barèmes par discipline et voir le cours que vous m'avez donné et je vais vous tenir au courant

  4. #4
    Membre régulier
    Inscrit en
    Juillet 2005
    Messages
    478
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2005
    Messages : 478
    Points : 89
    Points
    89
    Par défaut
    salut, je viens de céer des tables mais je trouve une difficulté à faire les requêtes car il y'a une différence dans la notation avec les hommes/femmes et aussi l'age chaque age à ses barèmes (15, 16 et 17 ans)
    mes tables sont modelisé comme ça :

    listes_eleves(Idliste_eleves,num_license,nom,sexe,age,specialite)
    epreuve_physiques_17(ideprueves_physiques,idliste_eleves,vitesse_30,vitesse_detente,<AUTRES COLONNES >)
    epreuve_physiques_16 (identique à epreuve_physiques_17)
    epreuve_physiques_15 (identique à epreuve_physiques_17)
    athletisme_h15(Idliste_eleves,course100,course200,course1500,javelot_600,<AUTRES COLONNES >)
    athletisme_h16(identique à athletisme_h15) ici h et f désignes hommes et femmes
    athletisme_h17(identique à athletisme_h15)
    athletisme_f15(identique à athletisme_h15)
    athletisme_f16(identique à athletisme_h15)
    athletisme_h17(identique à athletisme_h15)
    ...et des autres tableaux selon beaucoup d'autres épreuves (boxe,judo,lutte...)
    baremes_epreuves_physiques( idliste_eleves,sexe(avec doublant),vitesse_30min,vitesse_30max,detente_min,detente_max,<AUTRES COLONNES >)
    notes_epreuves_physiques_17 (idliste_eleves,sexe(avec doublant),vitesse_30,detente,<AUTRES COLONNES >)
    notes_epreuves_physiques_16(identique à notes_epreuves_physiques_17 )
    notes_epreuves_physiques_15(identique à notes_epreuves_physiques_17 )
    ...et des autres tableaux des autres eupreuves selon l'age et le sexe
    bon si vous avez compris la structure, ici je trouve une difficulté dans la réalisation de la requêtes, car les notes des épreuves sont différentes entres les hommes et les femmes et aussi différentes selon chaque âge.
    bon j'attends les suggestions et les conseils avec patience ou peut être dois-je faire des changement au niveau des structures des tables.
    merci

  5. #5
    Membre chevronné Avatar de EDM-TAHITI
    Homme Profil pro
    Directeur Service informatique et projet développement
    Inscrit en
    Janvier 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Directeur Service informatique et projet développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 994
    Points : 1 995
    Points
    1 995
    Par défaut
    Hello,
    Je ne puis qu'abonder dans le sens de VMOLINES que je salue au passage pour ce qui est de l'analyse fonctionnelle.
    La problèmatique est mal posé mais je la connais bien pour avoir exercé dans une Direction des Sports pendant plusieurs années.
    Afin de faire court, il faut pour chaque disciplines (IDDISCIPLINES, DisciplinesNom, etc...) en fonction du sexe (IDSEXE, TYPESEXE) déterminer les catégories(IDCATEGORIES, IDSEXE, CategoriesNom, DateAgeDébut, DateAgeFin, etc...) et de faire pour catégorieparametres (IDCATEGORIEPARAMETRES, IDCATEGORIES, Place, NbPoints, RecordDepartemental, RecorRégional, Recordnational, RecordInternantional, etc..) qui permettra ensuite de faire entrer les Sportifs (IDSPORTIFS, SportifNom, DateNaissance, Sexe, etc...) en fonction d'un lieu (IDLIEU, LieuNom, Date, etc...) dans une ou plusieurs épreuves (IDEPREUVES, IDLIEU, IDDISCIPLINES, IDCATEGORIES, IDLIEU, IDSPORTIFS, etc...) comportant lieuDisciplines (IDLIEUDISCIPLINES, IDLIEU, IDDISCIPLINES, DateDiscipline, Lieu, etc...). On peut même y ajouter une table qui permettra de cocher, après inscription du sportif, quelles sont les épreuves souhaitées, avec un contrôle au niveau de l'age (facile maintenant).
    A partir de là, il est facile de tirer des listes par lieux, lieux/disciplines, sportifs participant à.., qui participe à quoi.. que sais-je encore...
    Voilà ce que je peux écrire sur le sujet, et pour information, je gérais il y a bien longtemps des courses semi marathon, championnat de france, etc...
    Le but étant de retrouver par exemple un athlètes l'année d'aprés mais dont on connais déjà le CV et les anciens résultats (ceci pour la gestion des dossards - ceux qui ont fait savent de quoi je veux parler).
    Je n'ai pas inclus volontairement les résultats de chaque compétition car cela nécessite une autre analyse en fonction de la discipline, de la catégorie, du sexe, de l'importance de l'épreuve, etc...
    Et cerise sur le gateau, gestion des clubs participant au travers de leurs sportifs respectifs pour les résultats départementaux, régionaux, nationaux, et internationaux.
    Bon Dev
    le savoir est dans les livres, 'the magic touch F1'
    Amicalement
    Eric

Discussions similaires

  1. Réponses: 0
    Dernier message: 17/08/2008, 06h20
  2. Réponses: 1
    Dernier message: 11/10/2007, 13h24
  3. [MySQL] je cherche une aide pour récupérer des champs d'une base de donnée
    Par maya24 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 23/09/2007, 12h14
  4. Je cherche une aide pour installer un réseau wifi
    Par samaa dans le forum Windows XP
    Réponses: 9
    Dernier message: 17/04/2007, 21h44
  5. Réponses: 2
    Dernier message: 03/03/2007, 22h30

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