Conception stockage de données

a marqué ce sujet comme résolu.

Bonsoir à tous, après plusieurs années à lurker sur ce site, voilà que je me créé un compte :D

J’ai une question de conception pour structurer des données. Pour m’entraîner à Vue, je me lance dans une petite app de création de builds pour un jeu. Du style :

Les builds créés par les utilisateurs seront naturellement stockés dans une base de donnée. Ma question se porte sur les données « statiques » que sont les classes de personnages, les skills qui leurs sont associés, les objets, etc. Ces données seront rarement amenées à être modifiées. Je me demande donc s’il est pertinent de stocker ces données dans une BDD, ou bien s’il est préférable de les stocker localement, comme dans des fichiers JSON, ou des objets JS.

Les avantages que je vois à ça sont que n’importe qui pourrait faire une pull request pour modifier ou ajouter du contenu ; niveau performances, je suis moins sûr, moins d’appels à la base de donnée (mais parser des gros JSON est peut-être moins performant?).

Je me demande donc si c’est une bonne approche. Si oui, je me demande également comment stocker proprement les données sélectionnées dans un build stocké en BDD. Il n’y aurait pas de réelles relations entre la table des builds et les données qui seraient des Ids présents dans des fichiers locaux.

Question ouverte donc, dîtes moi c’est n’importe quoi ou si ça fait sens:D.

J’ai essayé de trouver des articles / réponses là dessus, mais je ne sais pas trop poser de mots là dessus car j’ai trouvé peu de résultat.

Bonne soirée !

+0 -0

Salut,

Je m’y connais pas des masses, mais si je devais apporter mes deux centimes, je dirais que la base de donnée est quand même l’outil suprême.
Je pense que stocker ces données dans un format différent va t’apporter beaucoup plus de problème que d’avantages.
L’avantage que tu donnes est que n’importe quel contributeur peut modifier ces entrées par une simple modification du source code. Mais, comme tu l’as dit, elle ne devraient pas être amené à changer donc pourquoi se concentrer sur la simplification de ce process ?
De plus, si elles viennent à être effectivement modifiées, tu as les mêmes problèmes de mise à jour des données existantes que si elles étaient en base de donnée (voire plus complexe).
Et enfin, je pense que c’est un faux avantage, car tu peux très bien avoir dans tes sources des fichiers qui contiennent les commandes de création de la base de donnée : les tables, les droits etc … mais donc aussi tes données statiques ! + un script de migration de base de donnée pour passer d’une version à l’autre. Donc le contributeur n’a qu’à modifier ce fichier sql, ça reste qu’une pull request, et il faudra run le script de migration au deploiement.

+3 -0

Hello romantik, merci pour ta réponse.

Oui, je pense après réflexion que tu as raison. Parmi les deux exemples de site que j’ai cité, j’avais regardé un peu comment ranald.gift fonctionnait : ils mettent bien de la data statique dans des objets JS (exemple). Donc ça me confortait un peu dans l’idée que cette approche faisait sens. Mais je pense en effet que cette approche apportera plus de contraintes que d’avantages.

Allez, partons donc sur l’approche classique et sûre de tout mettre en base !

Merci :)

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte