Bonjour tout le monde
Je suis actuellement en train de développer un outils en python (3.5) d'aide pour un jeu en ligne.
Dans ce jeux, il est possible de faire des aventures. Dans chaque aventures, on rencontre des unités ennemis, qui ne sont pas les même d'une aventure à l'autre. J'ai donc du mettre en place un système de base de données (sqlite3) pour gérer ces aventures. Pour l'heure j'ai une table pas aventure avec deux champs (id, nom de l'unité qu'on peut rencontrer). Par exemple, dans l'aventure "la cité perdue", on peut rencontrer des chiens, des loups et des guerriers. J'ai donc ma table avec trois ligne (1,chien),(2,loups),(3,guerriers).
Dans chaque aventures, les ennemis sont en fait dans des camps, j'aurais par exemple dans mon aventure 4 camps:
- Camps 1 : 10 loups / 10 chiens
- Camps 2 : 10 loups / 15 chiens
- Camps 3 : 15 guerriers
- Camps 4 : 5 loups / 5 chiens / 5 guerriers
Et c'est là que j'ai un soucis. Je ne sais pas trop comment gérer ça "proprement".
J'avais pensé à faire qqch du genre, j'ai une table principale qui regroupe toutes les aventures et qui possède deux champs (liste des unités, liste des camps).
Le champs "liste des unités" serait une autre table avec deux champs (id, nom de l'unité).
Par contre pour le champs "liste des camps", je galère. Je mettrais ça aussi dans une autre table mais je vois deux façons de faire cette table:
- une ligne par camps avec comme champs des doublons (nom de l'unité, quantité)
- une ligne par camps avec un seul champs qui serait une autre table, table composées de deux champs (nom de l'unité, quantité)
Chaque solution pose une problème:
La première : Dans mon exemple, j'ai un camps avec trois types d'unités, je vais donc devoir avoir 3 doublons (nom, quantité) comme champs dans ma table, sachant que tous ces champs ne seront pas utilisé tout le temps (si je n'ai pas exemple qu'un type d'unité dans mon camps, je vais avoir 4 champs non utilisés). En gros je vais devoir prendre le max pour chaque aventure...
La seconde : Ca va me faire créer énormément de table : une table pour chaque camps, j'ai en gros 20 camps par aventure, 80 aventures soit en tout 1600 camps (tables) à la louche carré.
Pour info, j'ai découvert la gestion de BDD ya un mois, j'en suis encore au niveau débutant (je gère le create, insert et select, ca va pas beaucoup plus loin). Je ne possède donc pas je pense beaucoup de concepts et je ne viens pas du monde web/gestion de base, je n'ai donc pas je pense la bonne façon de penser...
Je suis donc preneur de tous vos conseils/avis/critiques pour m'aider
Merci d'avance.
Partager