Précédent   Forum des professionnels en informatique > Environnements de développement > WinDev > HyperFileSQL
HyperFileSQL HyperFileSQL est un système de gestion de base de données relationnel exploité par les logiciels WinDev, WebDev et WinDev Mobile.
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 14/06/2011, 18h31   #1
Membre du Club
 
Inscription : juillet 2005
Messages : 423
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : juillet 2005
Messages : 423
Points : 46
Points : 46
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
Citation:
é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
dj_techno est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2011, 19h26   #2
Membre Expert
 
Inscription : mars 2005
Messages : 1 565
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : mars 2005
Messages : 1 565
Points : 2 178
Points : 2 178
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 :

Citation:
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 :

Citation:
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 :
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.
vmolines est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 14/06/2011, 21h42   #3
Membre du Club
 
Inscription : juillet 2005
Messages : 423
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : juillet 2005
Messages : 423
Points : 46
Points : 46
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
dj_techno est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2011, 13h53   #4
Membre du Club
 
Inscription : juillet 2005
Messages : 423
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : juillet 2005
Messages : 423
Points : 46
Points : 46
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 :

Citation:
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
dj_techno est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2011, 02h01   #5
Membre Expert
 
Avatar de EDM-TAHITI
 
Homme Eric CHARIEAU
Conseil - Consultant en systèmes d'information
Inscription : janvier 2010
Messages : 799
Détails du profil
Informations personnelles :
Nom : Homme Eric CHARIEAU
Âge : 48
Localisation : France

Informations professionnelles :
Activité : Conseil - Consultant en systèmes d'information
Secteur : Conseil

Informations forums :
Inscription : janvier 2010
Messages : 799
Points : 1 392
Points : 1 392
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
EDM-TAHITI est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h20.


 
 
 
 
Partenaires

Hébergement Web