stu76
Messages postés186Date d'inscriptionsamedi 5 mars 2005StatutMembreDernière intervention17 février 2008
-
19 oct. 2005 à 09:06
stu76
Messages postés186Date d'inscriptionsamedi 5 mars 2005StatutMembreDernière intervention17 février 2008
-
19 oct. 2005 à 15:54
Bonjour, tout le monde. J'aissaye de dévelloper une application pour une organisation sportive type aventure et j'ai du mal avec mes bases de données. Pour les créées pas de prob par contre j'ai du mal à les gérées. J'explique,
J'ai crée deux bases de données une nomée Arbitre et l'autre Concurrent.
Table arbitre Table Concurrent
<HR>
Nom Arbitre Nom Concurrent
Nom épreuve Nom épreuve
Groupe arbitré Groupe (Nom ou N°)
Sygle Parcourt1
Parcourt 2
Parcourt 3
Parcourt 4
Mon problème réside dans le faite, qu'un arbitre peu avoir plusieurs groupe à arbitré, mais également plusieurs épreuve d'un même groupe.
Ex : L'arbitre Paul, arbitre le groupe 5 sur les épreuves d'orientation et le parcour aérien. Les équipes font quatre fois le parcourtsur l'année il font donc pouvoir encoder le résultat de ceux-ci tout en gardant les résultats précédent.
J'usque là, j'ai tout réalisé le problème réside dans l'encodage des points des équipes. Quand un arbitre rapporte sa fiche elle doit être encodé. Je pensais utilisé un dbgrid lié à la table concurrent. Mais comment faire pour afficher dans ce dbgrid uniquement les groupes, les concurrents et les épreuves d'un arbitre exemple de paul ?
A partir de là j'avoue que je que je suis dans le broulliard depuis plusieurs jours . Si quelqu'un pouvait m'aider se serait vraiment sympa. J'ai cherché dans les tutos et dans les sources mais j'ai pas trouvé mon bonheur.
vincentstryckmans
Messages postés228Date d'inscriptionlundi 5 avril 2004StatutMembreDernière intervention25 octobre 2006 19 oct. 2005 à 12:26
Bonjour,
Pour le tutorial va voir à l'adresse :
http://sgbd.developpez.com/cours/ et choisi le cours : SQL de A à Z,
les autres tuto sont pas mal non plus, deplus certains sont dédiés à
certains serveurs SQL (oracle, interbase, ...)
Ensuite, il serait bon que tu revoies l'architecture de ta base de
données. Je pense que ton problème ne réside pas une méconnaissance des
outils delphi pour gérer ta base de données, mais dans le fait qu'elle
est mal conçue (désolé )
Dans l'acronyme SGDBR, le R signifie relationnel. Donc on peut
facilement mettre en relation une quantité de petites données pour en
faire une grande.
Bref voici ce que je te propose :
table ARBITRE : elle reprend les noms et prénoms des arbitres
id_arbitre : integer primary key
nom_arbitre : varchar(50)
prenom_arbitre : varchar(50)
lnk_groupe : integer
table MEMBRE: elle reprend le nom des participants et le numéro du groupe dont il font partie
id_membre : integer primary key
nom_membre : varchar(50)
prenom_membre : varchar(50)
lnk_groupe : integer
table GROUPE : elle reprend le nom du groupe et des infos diverses sur le groupe : devis, sigle, ...
id_groupe : integer primary key
nom_groupe : varchar(50)
....
table EPREUVE : elle reprend le nom et les
caractéristiques de l'épreuve : cotation maximum, type, niveau de
difficulté ,...
id_epreuve : integer primary key
nom_epreuve : varchar(50)
...
table RESULTAT : elle reprend toutes les résultats
des épreuves éffectuées par tous les membres du club, leurs points, ...
id_resulat : integer primary key
lnk_epreuve : integer >> te
permet de faire un lien vers la description de l'épreuve à laquelle
correspond les résultats
occurrence_epreuve : integer
>> = 1,2,3 ou 4 pour donner le numéro de l'occurence de l'épreuve
dans l'année, ce que tu appelles les parcours
date_resultat : date
>> te permet de trier les résultats selon la date à
laquelle ont eut lieu les épreuves, comme cela tu peux cataloguer
lnk_arbitre : integer >> te permet de faire le lien vers l'arbitre qui a jugé
point_epreuve : integer
Pour t'aider à créer ta base de données, ses tables, les clefs
primaires, les clefs étarngères (foreign key) qui vont créer les liens
entre tes tables, ... tu peux utiliser des logiciels tels que Case
Studio ou EMS pour créer visuellement tes tables et en suite générer
tout le code SQL selon le type de bases de données que tu utilises.
En séparant correctement tes données et en créant les bonnes relations
entr-elles, tu pourras plus aisément les éditer, imprimer des listes,
... ajouter des champs supplémentaires tel que l'appréciation d'un
arbrite, le succès de telle ou telle épreuve, ...
Voilà, j'espère que je n'ai pas été trop long et maintenant je retourne à mon serveur SQL à moi.
Et comme disait ma grand-mère : il y a toujours du soleil derrière les nuages.
vaughan
Messages postés198Date d'inscriptionmardi 6 août 2002StatutMembreDernière intervention29 octobre 2008 19 oct. 2005 à 10:59
Il te faut faire un filtre dans ton DbGrid (Requête SQL):
Créer un module de donnée,
Créer un TQuery et un TDataSource,
Et dans ton TQuery dans la propriété SQL faire une requête du genre :Select TConccuren.* From TArbitre,TConcurren Where TArbitre.Groupe TConcurren.Groupe And Nom_Arbitre 'Paul'
Et tu aura tout les concurrent du groupe arbitré par paul
stu76
Messages postés186Date d'inscriptionsamedi 5 mars 2005StatutMembreDernière intervention17 février 20081 19 oct. 2005 à 11:40
Salut vaughan,
Merci pour l'info, mais je comprend pas trop ton explication ca à l'air super interessant mais là c'est encore flou surtout au niveau SQL. Connais-tu un tuto qui peu m'aider ?
Je suis d'accord avec Vincent ... il faut mieux structurer ta base ... afin d'avoir des accés facile et cohérent ... mais je sais que c'est pas évident car j'étais un jour débutant ...
Les tables énoncés par vincent sont un trés bon point de départ, cela sera plus dure pour toi de rentrer dans ton projet mais par contre dans un mois ta maintenance sera allègée. Si ton programme n'est pas éphémère suis ses conseils.
vaughan
Vous n’avez pas trouvé la réponse que vous recherchez ?
stu76
Messages postés186Date d'inscriptionsamedi 5 mars 2005StatutMembreDernière intervention17 février 20081 19 oct. 2005 à 15:54
Salut Vincentstryckmans,
Merci pour l'info, je suis entièremment d'accord avec sur la réorganisation des bases de données, et j'accepte tout à fais les critiques constructives comme la tienne. C'est ce qui nous permet d'aller plus loin et surtout d'évoluer.