[MySQL] Aide conception d'une BDD

Aide conception d'une BDD [MySQL] - SQL/NoSQL - Programmation

Marsh Posté le 25-01-2017 à 19:43:06    

Bonjour à tous,
Je souhaite réaliser une BDD à partir des données d'un jeu en ligne (MOBA) que je récupère depuis le site officiel. Hélas, je ne sais pas comment bien les organiser dans ma BDD. Combien de tables ? Combien de champs par table ? Quelles relations ? Je débute en conception de BDD et je souhaite faire les choses correctement dès le départ ! En réalité j'ai plus de données que décrit ci-dessous mais j'ai mis l'essentiel :
 
- Chaque personnage du jeu possède [1, n] sorts
- Chaque sort possède un nom, un niveau auquel le sort est obtenu et 3 niveaux de puissance.
- Chaque niveau de puissance du sort possède [1, n] effets (ex : 30 à 150 dégats bruts, repousse la cible). Les effets augmentent en puissance et en nombre au fil des niveaux du sort.
- Chaque niveau de puissance du sort possède une zone d'effet (ex : 300 unités en cercle) et une portée (ex : 800 unités), augmentant au fil des niveaux du sort.
 
Voici l'exemple complet d'un sort existant :
Personnage : Trooper
Nom du sort : Feinte
Obtention du sort au niveau : 4
Niveau 1 du sort : 37 à 72 dégats physiques | Étourdit la cible | Zone : Ligne droite sur 200 unités | Portée : 500
Niveau 2 du sort : 65 à 110 dégats physique | Étourdit la cible | +10% d'armure | Zone : Ligne droite sur 350 unités | Portée : 600
Niveau 3 du sort : 100 à 163 dégats physiques | Étourdit la cible | +10% d'armure | Zone : Ligne droite sur 500 unités | Portée : 700
 
Je pensais faire les tables Personnage, Sort, Effet, EffetsSort et CaracSort :
Personnage : id_perNo, per_Nom
Sort : id_sorNo, sor_Nom, sor_NiveauObtention, idx_perNo
Effet : id_effNo, eff_Nom (plusieurs sorts peuvent infliger l'effet "Dégats physiques", par exemple)
EffetsSort : id_effSorNo, effSor_ValeurMin, effSor_ValeurMax, effSor_Niveau, idx_sorNo, idx_effNo
CaracSort : id_carNo, car_Portee, car_Zone, car_Niveau, idx_sorNo
 
Je sais que les champs xx_Niveau ne devraient se trouver qu'à un endroit, ce qui réduirait le nombre de tables, mais je n'arrive pas à trouver la solution la plus optimisée
Merci d'avance pour votre aide !


Message édité par purpleriver le 25-01-2017 à 19:46:58
Reply

Marsh Posté le 25-01-2017 à 19:43:06   

Reply

Marsh Posté le 30-01-2017 à 15:51:29    

:bounce:

Reply

Marsh Posté le 31-01-2017 à 16:49:23    

Un MPD / MCD c'est possible ? C'est un peu bordélique à lire :o
Et sinon ça me paraitrait plus logique d'avoir une table de Sort (avec le nom, le niveau d'obtention, etc), une table Personnage, et une table de liaison entre les deux.


---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 06-02-2017 à 09:47:07    

TotalRecall a écrit :

Un MPD / MCD c'est possible ? C'est un peu bordélique à lire :o
Et sinon ça me paraitrait plus logique d'avoir une table de Sort (avec le nom, le niveau d'obtention, etc), une table Personnage, et une table de liaison entre les deux.


+1, dés l'instant où 2 tables sont liées par une liaison (n,n) comme ici (un perso peut posséder plusieurs sorts et un sort peut être détenu par plusieurs persos), une table de liaison est quasi obligatoire


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed