Bonjour à tous,
Je voudrais concevoir un MCD qui se base sur le jeu "Pokemon", pour pouvoir ensuite créer les autres schémas et enfin utiliser la BDD correspondante. Je tiens à préciser que pour le moment je ne compte pas mettre en place un système d'évolution, chaque pokemon sera considérer comme n'ayant pas d'évolution (sauf si certains sont motivés pour m'aider lol)
J'ai donc beaucoup réfléchi et voici le MCD :
Explication:
On a des FichesPokemons (c'est à dire le Pokédex), qui contient les informations de base d'un Pokemon (nom,stats de base...). Chaque FichesPokemons ont au moins un Types (jusqu’à 2) On a ensuite des Pokemons (c'est à dire les pokémons réels), un Pokemon a une et une seule FichesPokemons, et en plus un sexe, un niveau, l’expérience du niveau en cours . Un Pokémons appartient à un seul Dresseurs. Un Pokemons connait (peut utiliser) au moins une Attaques (et jusqu’à 4), et une Attaque est d'un seul Types.
Jusque là je ne pense pas avoir fait trop d'erreurs, mais c'est la suite que je trouve moins cohérente :
Une FichesPokemons peut apprendre au moins une Attaques (jusqu'à n) à un certain niveau.
Mon problème est que ce sont les Pokemons qui connaissent des Attaques, mais que ce sont les FichesPokemon qui peuvent en apprendre. J'ai fait ce choix car de base la table FichesPokemons sera pré-remplie ainsi que la table de jointure Apprendre, alors que les Pokemons seront créer au fur et a mesure.
Exemple :
Attaques
id_att | nom_att | ect....
---1----Griffe-------....
---2----Charge-----....
---3----Éclair-------....
FichesPokemon
id_fichepkmn | nom_fichepkmn | ect....
---1----------------Bulbizarre-------....
---2----------------Pikachu------....
Apprendre
id_fichepkmn | id_att | niveau_app
---1---------------1---------1
---1---------------2---------12
---2---------------1---------1
---2---------------2---------12
---2---------------3---------20
Mon choix de mettre apprendre en relation avec FichesPokemons me permet de ne pas avoir de redondances. En effet si j'avais relier apprendre a Pokemon, il pourrait y avoir 2 pikachu différents dans Pokemons et cela ferait que dans la table apprendre je devrais lister chaque attaque que chacun des deux pikachu peuvent apprendre :
Attaques
id_att | nom_att | ect....
---1----Griffe-------....
---2----Charge-----....
---3----Éclair-------....
FichesPokemon
id_fichepkmn | nom_fichepkmn | ect....
---1----------------Bulbizarre-------....
---2----------------Pikachu------....
Pokemons
id_pkmn | id_fichepkmn | ect....
---1-------------1------------.... (Pikachu 1)
---2-------------1------------.... (Pikachu 2)
Apprendre
id_pkmn | id_att | niveau_app
---1---------1---------1
---1---------2---------12
---1---------3---------20
---2---------1---------1
---2---------2---------12
---2----------3---------20
On voit les redondances que cela pourrait créer alors que les deux apprennent les mêmes Attaques
Comment pourrais-je représenter au mieux cette situation? Je suis débutant donc je ne connais pas toutes les subtilités, j'aimerais savoir si ce MCD tient la route, et surtout comment l'améliorer et le rendre plus cohérent?
Merci beaucoup d'avoir pris le temps de lire
Partager