Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1614 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Conseil pour un MCD

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Conseil pour un MCD

n°2178289
wazany
Posté le 02-03-2013 à 15:38:26  profilanswer
 

Bonjour,
j'aimerai avoir votre avis par rapport à un petit projet que je cherche à faire. Pour faciliter mon père avec le suivi du club je voulais lui faire un site internet avec la possibilité d'entré les athlètes et des compétitions et dans ses compétitions y mettre les épreuves souhaités !  
 
j'ai crée un mcd :
http://i.imgur.com/D9rt5OF.jpg
 
Ce que ça fais en sql :
 

Code :
  1. CREATE TABLE athlete (
  2. athlete_id int AUTO_INCREMENT NOT NULL,
  3. athlete_nom VARCHAR(30),
  4. athlete_prenom VARCHAR(30),
  5. athlete_num_licence INT(10),
  6. athlete_sexe VARCHAR(1),
  7. athlete_naissance_annee INT(4),
  8. athlete_naissance_jour INT(2),
  9. athlete_naissance_mois INT(2),
  10. PRIMARY KEY (athlete_id)
  11. );
  12. CREATE TABLE competition (
  13. competition_id int AUTO_INCREMENT NOT NULL,
  14. competition_lieu VARCHAR(20),
  15. competition_jour INT(2),
  16. competition_mois INT(2),
  17. competition_annee INT(4),
  18. PRIMARY KEY (competition_id)
  19. );
  20. CREATE TABLE epreuve (
  21. epreuve_id int AUTO_INCREMENT NOT NULL,
  22. epreuve_nom VARCHAR(30),
  23. competition_id INT NOT NULL,
  24. PRIMARY KEY (epreuve_id)
  25. );
  26. CREATE TABLE participer (
  27. athlete_id int AUTO_INCREMENT NOT NULL,
  28. competition_id INT NOT NULL,
  29. PRIMARY KEY (athlete_id,  competition_id)
  30. );
  31. CREATE TABLE concourir (
  32. athlete_id int AUTO_INCREMENT NOT NULL,
  33. epreuve_id INT NOT NULL,
  34. PRIMARY KEY (athlete_id,  epreuve_id)
  35. );


 
le tout grâce à Analysesi :D !
 
Il y a juste le problème des table participer et concourir qui se crée alors que je voie pas pourquoi :/


Message édité par wazany le 02-03-2013 à 15:43:46

---------------
L'annuaire des serveurs Discord Hardware.fr Aidez nous à le compléter ! | Mes ventes
mood
Publicité
Posté le 02-03-2013 à 15:38:26  profilanswer
 

n°2179339
cvb
Posté le 08-03-2013 à 12:05:23  profilanswer
 

Bonjour,
 
C'est la base des MCD et des MPD !  
Quand il y a deux entité (0,n, 1,n) une table est crée regroupant les deux clés primaires définis dans les tables.
 
 
++

n°2179604
rufo
Pas me confondre avec Lycos!
Posté le 11-03-2013 à 10:19:11  profilanswer
 

qq remarques sur le choix de certains types pour tes champs :
athlete_num_licence -> fais plutôt un varchar(10), ça sera plus générique. Si le format de la licence un jour contient des lettres, tu sera embêté.
 
athlete_naissance_annee / athlete_naissance_jour / athlete_naissance_mois -> fais plutôt un seul champ athlete_date_naissance de type DATE. Tu pourras ainsi utiliser les fonctions du sgbd pour faire des calculs sur les dates ;)
 
Même remarque pour competition_jour / competition_mois / competition_annee.
 
A mon avis, la table participer est inutile. J'imagine qu'on considère qu'un athlète participe à une compétition s'il est inscrit au moins à une épreuve. De ce fait, pour avoir la liste des athlètes participant à une compétition, tu l'auras via la table concourir.
 
Tu devrais mettre dans la table "competition" des champs en plus :
- un champ "nom" (mais non obligatoire),
- un champ date de début,
- un champ date de fin,
-  Pour le champ competition_lieu, tu devrais plutôt en faire une clé étrangère qui pointerait dans une table "lieu" (qui aurait un id, un nom et d'éventuels autres champs). Sans ça, tu risque d'avoir dans la BD des lieux identiques mais écrits différemment. Dans ce cas, tu pourras plus faire de requête précise donnant le nb de compétitions par lieu.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2179641
wazany
Posté le 11-03-2013 à 11:20:49  profilanswer
 

Merci pour les conseils :) ! mais petite questions si on veux faire qu'un athlète puisse faire plusieurs concoure dans la même compétition, c'est possible?


---------------
L'annuaire des serveurs Discord Hardware.fr Aidez nous à le compléter ! | Mes ventes
n°2179648
Farian
Posté le 11-03-2013 à 11:32:38  profilanswer
 

Bonjour !
 
Comme proposé ci-dessus, le lien en base est "concourir", donc la participation d'un athlète a une ou plusieurs épreuves, que celles-ci soient dans la même compétition ou non.
 
Et le lien "participe" peut être calculé en regardant si l'athlète concerné participe à au moins une épreuve de la compétition considérée.
 
Bonne continuation !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Conseil pour un MCD

 

Sujets relatifs
CONSEIL pour une application pour gsm mobileBesoin de conseil et d'info sur le parsing de flux json
Conseil choix de CMS pour site d'artisanConseil Framework MVC
conseil recrutement développeur mobile[C#] Génération de rapport PDF
[PHP] Conseil stockage variablesconseil algo pour un projet
[Divers] Conseil plateforme en ligne pour morceaux de code[PowerShell] Demande de conseil de Tuto
Plus de sujets relatifs à : Conseil pour un MCD


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR