Hello,
Ta dernière solution effectue une sérialisation/dé-sérialisation pour enregistrer/lire l'information. À ce compte là, tu peux y mettre du Json, par exemple
Ensuite, vu comment tu fais, on comprend qu'il faut avoir le niveau 2 pour apprendre le 3, ça sert à rien de socker ces deux infos :
Tu peux opter pour un nombre décimal : le champ
Et si tu ne fais pas de jointure, alors tu peux opter pour une concaténation (ou une structure JSON — encore mieux sur PostgreSQL). Mais c'est pas grave d'avoir plein de champs, surtout que tu as fait une table exprès au lieu de les mettre dans la table du personnage. Sur PostgreSQL tu pourrais aussi opter pour un seul champ de type tableau, par exemple, à voir si c'est justifié.
Tu n'as pas montré comment tu stockais la progression vers le prochain niveau. Je suppose qu'on n'achète pas les niveaux instantanément puisque tu veux stocker un
La prochaine étape serait de simplement stocker les points d'expérience militaire, par exemple
Regarde ce topic : https://www.jeuweb.org/showthread.php?mo...pid=116701 (mais c'est dommage car les maths me semblent un peu velus à cette heure tardive). Tu peux trouver des formules de calcul de niveau selon différents méthodes.
Ta dernière solution effectue une sérialisation/dé-sérialisation pour enregistrer/lire l'information. À ce compte là, tu peux y mettre du Json, par exemple
{"mil": 2, "mil_encours": 3, "sci": 2, ...}
.Ensuite, vu comment tu fais, on comprend qu'il faut avoir le niveau 2 pour apprendre le 3, ça sert à rien de socker ces deux infos :
mil
et mil_encours
.Tu peux opter pour un nombre décimal : le champ
mil
valant 2.56 indique qu'on a le niveau 2 et qu'on est à 56% du 3. Si tu fais des jointures ou des stats sur ce champ, les nombres flottants sont peut-être pas top pour les performances et l'écriture du SQL ; Xenos t'en dira peut-être d'avantage là dessus.Et si tu ne fais pas de jointure, alors tu peux opter pour une concaténation (ou une structure JSON — encore mieux sur PostgreSQL). Mais c'est pas grave d'avoir plein de champs, surtout que tu as fait une table exprès au lieu de les mettre dans la table du personnage. Sur PostgreSQL tu pourrais aussi opter pour un seul champ de type tableau, par exemple, à voir si c'est justifié.
Tu n'as pas montré comment tu stockais la progression vers le prochain niveau. Je suppose qu'on n'achète pas les niveaux instantanément puisque tu veux stocker un
min_encours
. Au lieu d'y stocker le prochain niveau (qu'on trouve facilement en faisant mil + 1
), tu devrais y stocker la progression.La prochaine étape serait de simplement stocker les points d'expérience militaire, par exemple
3 584
, et avoir dans ton code une formule qui donne le niveau à partir des points. Et d'avoir un champ comme ça et une formule de calcul pour chaque cursus.Regarde ce topic : https://www.jeuweb.org/showthread.php?mo...pid=116701 (mais c'est dommage car les maths me semblent un peu velus à cette heure tardive). Tu peux trouver des formules de calcul de niveau selon différents méthodes.