La réalisation de GSPanel avance tranquillement, et je bloque actuellement sur un point, donc j'aimerai votre avis.
Lorsqu'un utilisateur aura ajouté une machine, il devra ajouter des jeux. Au niveau structurel, la page d'ajout proposera au tout début une simple liste déroulante, contenant tous les jeux proposés. Une fois que l'utilisateur aura fait son choix, le vrai formulaire apparaîtra avec les valeurs adéquates (nom du jeu, version, dossier d'installation, etc).
Le problème est au niveau des jeux. A la base, je pensais que le mieux était de faire un fichier xml par jeux. Ce fichier contiendrait les informations suivantes :
- Nom (du jeu)
- Version
- Logo
- Chemin du script d'installation (sur nos serevurs)
- Liste de paramètres pour le script
- Chemin d'exécution du jeu
- Paramètres pour lancer le jeu (tel que port, ip, etc)
(d'ailleurs, si j'en oublie, n'hésitez pas !)
Le problème, est que pour afficher une liste de 50 jeux, il faudra parcourir 50 fichiers, et en plus ouvrir celui que l'utilisateur aura sélectionné pour récupérer les autres données, et cela à chaque fois que l'utilisateur affichera la page "Ajouter".
Ça peux vite devenir lourd !
Du coup, j'aurais deux solutions, mais j'aimerai vos avis (quelle solution serait la meilleure ? (d'autres propositions sont permises)) :
- Faire un master file xml, qui contiendrait la liste des fichiers xml avec le nom du jeu (la liste affichera le nom et aura comme clée le fichier).
Le problème avec cette méthode est qu'il faut mettre à jour le master file à chaque fois qu'un nouveau jeu est ajouté.
- L'autre solution consisterait à tout mettre en base. On oublie complètement le chargement des fichiers xml dans ce cas. Là, le problème est que cette implémentation impose la création de trois nouvelles tables : les informations du jeu, les paramètres du script d'installation et les paramètres du jeu.
D'après vous, quelle serait la meilleure méthode, laquelle utiliseriez-vous ? Serait-ce la 1 ? la 2 ? ou une autre carrément plus adaptée ? :)
Merci de me laisser vos avis !
2 Comments so far ...
Pierre says:
Pour moi la base de donnée à coup sûr : tellement plus simple à mettre à jour.
D'ailleurs pourquoi 3 tables et pas 1 seule regroupant toutes ces infos ?
A toute sur msn ou autre :)
Cyril N. says:
Merci pour ton commentaire :)
Il faut trois tables car il y aura plusieurs paramètres pour le script d'installation, et plusieurs paramètres pour le lancement du jeu. C'est plus simple que de faire un varchar séparé par des virgules.
Surtout que les paramètres de lancement du jeu auront des attributs qui indiqueront leur utilité pour les plus fréquents (isIp, isPort, isPassword, etc).
Donc je me vois mal faire des listes de paramètres, avec pour chacun leur nom, leur type (string, int, etc) et leur attributs.
Qu'en penses-tu ?
Je commence aussi à me dire que la base de donnée est la meilleure des solutions. Au pire, je peux aussi faire des fichiers xml et un script cron qui met à jour la table en fonction des fichiers xml (peut-être plus simple pour la maintenance).