Page 1 sur 2
Les classements: Après les tables, les sorties!
Posté : 03 janv. 2006, 16:00
par Sebe
Salut,
J'ai fait un site pour un club de course à pied et j'aimerai valoriser les courses organisées par les sociètaires du club. Je voudrais reprendre chaque classement des courses depuis qu'elles existent et les mettre dans une BD (elles existent toutes sur papier mais pas sur disquette!)
Quelle serait la bonne structures de ma Base de Données en voyant ce classement ci-joint
C'était il y a quelque temps depuis, j'ai bien avancé puisque j'ai toutes mes tables (grâce à de gros coups de main trouvés sur ce site!)
Maintenant, il faudrait que je fasse les tests avant de me lancer dans un "interface" d'encodage!
Voici donc mes tables provisoirements finies et rebaptisées:
- une table pour déterminer la catégorie. A noter que seul ID et le Nom serviront! Cette table intervient dans la conception d'une autre page ... voilà pourquoi!
- une table avec tous les clubs existants qui ont déjà participé à l'une de nos courses
- une table pour faire l'inventaire de tous les participants. Vous notez qu'il y a un champs 'date de naissance' et 'sexe' qui ne seront pas employé dans un premier temps (pas certain d'avoir toutes les dates de naissance) mais qui servent pour déterminer la catégorie.
- une table qui dira en fonction des années ce que sont devenus les joggeurs (club, catégories et le dossard)
-
une table pour définir la course
- un dernière table qui tiendra compte de toutes les données pour avoir les classements
L'aventure continue, il faut désormais écrire les scripts pour que ce soit montrable!
Posté : 03 janv. 2006, 16:02
par Cyrano
Là, on en est pas au PHP, je déplace le sujet vers un forum plus approprié.
Posté : 03 janv. 2006, 16:04
par Sebe
Désolè, je viens de m'en rendre compte.
Merci
Posté : 03 janv. 2006, 16:25
par Sebe
1er soucis!
Je me demande comment je dois lier une page à une autre!
J'ai fait un petit brouillon
http://www.kain-bruyere.be/autres_pages ... ourses.php, j'utilise la table 'acrho_courses' et je n'arrive à trouver le script pour que lorsque je clique sur la course, il aille directement à la page que je désire!
Cette page s'appellera classement (et ne prendra que le classement d'une seule course). Si vous pouvez me mettre sur la bonne voie!
Merci
Posté : 03 janv. 2006, 22:44
par Cyrano
BOn, ben on est toujours dans la modélisation : as-tu en fin de compte tous les éléments dont tu as besoin dans tes tables ?
Tu te demandes peut-être pourquoi je pose la question : mais ce serait mieux si tu découvrais toi-même la réponse. Là, on doit faire de la logique pure.
De quoi as-tu exactement besoin pour construire cette page ? Tu as correctement séparé les lignes, à chaque ligne correspond une course particulière, jusque là, c'est correct : mais tes liens manquent. Donc... ?
Posté : 03 janv. 2006, 23:32
par Sebe
BOn, ben on est toujours dans la modélisation : as-tu en fin de compte tous les éléments dont tu as besoin dans tes tables ?
Tu te demandes peut-être pourquoi je pose la question : mais ce serait mieux si tu découvrais toi-même la réponse. Là, on doit faire de la logique pure.
De quoi as-tu exactement besoin pour construire cette page ? Tu as correctement séparé les lignes, à chaque ligne correspond une course particulière, jusque là, c'est correct : mais tes liens manquent. Donc... ?
Peut-être qu'un champs manque dans la table 'acrho_courses' avec un lien URL mais alors, il me faudrait autant de page que de courses existantes! Je suis certain qu'il y a une possibilité pour faire autrement mais je ne vois pas comment je peux faire.
Posté : 03 janv. 2006, 23:37
par Cyrano
Tu es à mon avis déjà trop loin dans ta réflexion: commence par le début : liste les données dont tu as besoin pour créer ta page: des titres, des adresses de page ou des références qui te permettent de construire des liens, etc... À partir de cette liste, tu peux ensuite cnonstruire tes tables. Si tu n'as pas prévu un mécanisme pour pouvoir disposer de ces informations, alors ta modélisation est incomplète.
Posté : 03 janv. 2006, 23:49
par Sebe
Tu es à mon avis déjà trop loin dans ta réflexion: commence par le début : liste les données dont tu as besoin pour créer ta page: des titres, des adresses de page ou des références qui te permettent de construire des liens, etc...
J'ai besoin
- de l'URL de ma page
http://www.kain-bruyere.be/autres_pages ... ements.php
- d'un systéme qui permette d'identifier le classement désiré ... ID serait bien mais le problème arrivera quand j'aurai plusieurs tables (une par saison)
À partir de cette liste, tu peux ensuite construire tes tables. Si tu n'as pas prévu un mécanisme pour pouvoir disposer de ces informations, alors ta modélisation est incomplète.
Moi qui pensais avoir fini avec le gros du travail! Le problème est que je ne connais pas grand chose en ce qui concerne les relations que peuvent avoir les tables et les scripts. Mes connaissances se limitent au HTML mais je me soigne
Merci
Posté : 04 janv. 2006, 00:08
par Cyrano
Il ne faut pas reléguer la modélisation au rang des bricoles sans importance, c'est au contraire une partie primordiale quand on veut créer des applications durables : il ne faut pas devoir refaire le travail au complet dans les mois qui viennent. Mais si tu ne modélises pas correctement, une petites modification sur la demande d'un client risque fort de coûter une fortune parce que la structure n'aura pas été convenablement analysée.
J'ai mis un post-it sur le forum de modélisation avec
un lien vers un excellent tuto sur la question : tu devrais y jeter un coup d'oeil à mon avis.
Tu mentionnes une table par saison ? Pour quoi faire ? Qu'est-ce qui distingue une saison d'une autre ? les années. C'est une valeur importance certes, mais pas au point de justifier une nouvelle table au changement de saison; ce sera une ligne de plus dans une table saison : là ce serait logique. Pense toujours que dans six mois tu ne t'occuperas plus de l'application pour une raison quelconque: si celui qui doit reprendre la maintenance du site ne sait pas ce détail, il va s'arracher les cheveux en se demandant pourquoi à la fin de la saison l'application en fonctionne plus ? C'est incohérent.
Posté : 04 janv. 2006, 00:20
par Sebe
Ok, je vais lire ce que tu m'as envoyé et voir ce que je peux en tirer pour moi aller de l'avant.
Pour les tables, il me paraissait assez essentielle de céer une nouvel table 'acrho_classements_200*' chaque année à cause du nombre de ligne de données! 500 coureurs par course, 40 courses par an, 20 ans d'existance ... voilà pourquoi! Mais si tu me dis que c'est inutile, je te fais confiance ... tu dois certainement en connaître plus que moi 8)
Bon, merci pour ce lien et tu peux à l'occasion voir si je ne me suis pas évanouis sous la brique
Merci
Posté : 04 janv. 2006, 00:22
par Cyrano
Ce que tu peux toujours faire chaque année, c'est archiver les données obsolètes dans une autre table, mais vu la quantité globale de données que tu auras, ça ne mérite pas. Dis-toi qu'il existe des bases de données autrement plus grosses que ca qui tournent très bien.
Posté : 04 janv. 2006, 00:37
par Sebe
Obsolètes? Tout est utile puisque récupérable à n'importe quel moment!
Plusieurs tables auraient été intéréssante pour un extérieur pouvoir faire un repérage rapide ... c'est toi le prof, je garde ton idée!
Posté : 04 janv. 2006, 00:40
par Cyrano
Pour repérer un résultat d'une saison passée, tu as besoin de savoir quoi : l'année : un index sur la colonne "saison" et le résultat sortira très rapidement même si tu as 50 000 lignes de résultats au total, ce n'est absolument pas un problème et même je dirais au contraire que ça simplifierait : comment gérer simplement plusieurs tables ayant le même type de données: il te faudrait une table spéciale pour stocker ... les noms des tables de saison pour pouvoir pointer sur la bonne en fonction de la saison recherchée: ce sera 100 fois plus lent.
Posté : 04 janv. 2006, 00:46
par Sebe
Tu me laisses penser que certaines de mes belles tables n'ont pas lieu d'être !

Posté : 04 janv. 2006, 00:57
par Cyrano
Fais le tour du tuto sur MERISE et prends un papier et un crayon pour essayer de schématiser ton modèle de données: peut-être bien que certaines tables devront êtres revues, que d'autres sont sans fondement et que d'autres encores non seulement sont indispensables mais méritent même d'être complétées.
Et si tu cherches un outil de modélisation gratuit, il y a un logiciel libre parfait pour ça :
DBDesigner de FabForce : le site est en anglais, mais l'interface peut-être mise en français.