Les classements: Après les tables, les sorties!

Mammouth du PHP | 545 Messages

03 janv. 2006, 16:00

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

Image
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!
Image


- une table avec tous les clubs existants qui ont déjà participé à l'une de nos courses
Image


- 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.
Image


- une table qui dira en fonction des années ce que sont devenus les joggeurs (club, catégories et le dossard)
Image


- une table pour définir la course
Image


- un dernière table qui tiendra compte de toutes les données pour avoir les classements
Image


L'aventure continue, il faut désormais écrire les scripts pour que ce soit montrable!
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!

Mammouth du PHP | 19672 Messages

03 janv. 2006, 16:02

Là, on en est pas au PHP, je déplace le sujet vers un forum plus approprié.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 545 Messages

03 janv. 2006, 16:04

Désolè, je viens de m'en rendre compte.

Merci
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!

Mammouth du PHP | 545 Messages

03 janv. 2006, 16:25

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
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!

Mammouth du PHP | 19672 Messages

03 janv. 2006, 22:44

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... ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 545 Messages

03 janv. 2006, 23:32

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.
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!

Mammouth du PHP | 19672 Messages

03 janv. 2006, 23:37

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.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 545 Messages

03 janv. 2006, 23:49

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

Merci
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!

Mammouth du PHP | 19672 Messages

04 janv. 2006, 00:08

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.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 545 Messages

04 janv. 2006, 00:20

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

Merci
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!

Mammouth du PHP | 19672 Messages

04 janv. 2006, 00:22

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.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 545 Messages

04 janv. 2006, 00:37

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!
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!

Mammouth du PHP | 19672 Messages

04 janv. 2006, 00:40

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.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 545 Messages

04 janv. 2006, 00:46

Tu me laisses penser que certaines de mes belles tables n'ont pas lieu d'être ! :?
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!

Mammouth du PHP | 19672 Messages

04 janv. 2006, 00:57

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.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: