Voila, je suis en train d'essayer de programmer en php, un utilitaire pour Ogame, un jeu de stratégie temps réel avec un cadre
spacio-futuriste.
Pour celle appli, j'ai besoin de stocker différentes informations.
Voici quelques règles qui définiront la structure des tables:
L'univers est divisé en 9 galaxies.
Ces galaxies sont elles même divisées en 499 systèmes solaires.
Chaque système solaire est composé de 15 planètes.
Une planète peut avoir 3 "états":
- Libre
- Colonisée
- Champs d'astéroides ( après destruction d'une planète, un champs d'astéroide se forme, et après 24-48h une nouvelle planète
libre apparait en lieu et place )
Une planète peut posséder une lune ( une lune peut aussi être détruite )
Une planète peut posséder un champs de ruines ( un champs de ruine peut aussi être "détruit" )
plusieures planètes peuvent porter le même nom
Un champs de ruine est composé d'une certaine somme de métal et d'une certaine somme de cristal, qui peuvent fluctuer avec le
temps
Un colon a toujours au minmum 1 planète et au maximum 9.
Un colon peut avoir 5 états:
- Actif
- Inactif depuis 2 semaines
- Inactif depuis 4 semaines
- En vaccance
- Bloqué
Un colon peut faire partie ( ou non ) d'une et une seule alliance
Une alliance est composée au minimum d'un colon
Une alliance possède un nom, ainsi qu'un nom raccourci ( appellé "tag" )
j'aurais aimé stocker les planètes, ainsi que leurs colons éventuels ( avec nom, alliance éventuelle, état, etc )
Un rapport d'enquête ( différentes informations diverses sur la planète ) lié à la planète, si il existe.
Ce rapport d'enquête sera unique pour chaque planète mais pourra être modifié.
Il ne sera pas utile de harger le rapport d'enquête à chaque fois que l'on charge des informations de la table Planets
Voila, je pense que c'est tout...
ALors j'avais pensé à la structure suivante:
Table Colons:
# colon_id
ally_id
colon_name
colon_state
Table Alliances:
# ally_id
ally_name
ally_tag
Table Planets:
# Galaxy
# System
# Planet
colon_id
rapport_id
planet_name
planet_state
planet_moon
planet_ruins_metal
planet_ruins_cristal
Table Rapports:
#rapport_id
( puis des champs divers, mais assez nombreux et volumineux )
J'ai séparé Rapports de Planets, car la taille d'un enregistrement dans "Rapports" est assez conséquente.
Pensez vous que ma structure est correcte et optimisée ?
Que me conseillez vous comme liaison? Jointures ou autre?
Merci d'avance de l'intérêt que vous porterez à ma requête.
Bien a vous
Partager