Représentation d'un arbre technologique en BdD - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : Représentation d'un arbre technologique en BdD (/showthread.php?tid=3106) Pages :
1
2
|
Représentation d'un arbre technologique en BdD - Argorate - 27-09-2008 Hello world, je suis entrain de voir comment passer de mon arbre tech sur papier à la BDD, et j'aimerai avoir vos avis pour essayer d'obtenir la solution la plus optimisé. merci. Pour vous aider a voir de quoi je parle: Si on a un systeme comme celui-ci, qu'un element peut avoir besoin d'un ou plusieurs elements pour etre "débloqué". Comment représenter cela en BDD? RE: Representation arbre tech en BDD - Stefff - 27-09-2008 Mon idée est peut être foireuse (même certainement), mais en tant que petit noob, je ferai comme ca : id compétence points_comp1_requis points_comp2_requis, etc ... Evidement, la première comp a des zéros partout ... je sais pas si je suis très clair, et je sais pas si mon système est bon RE: Representation arbre tech en BDD - Hakushi - 27-09-2008 competence_id - int - auto-increment nb_points - int name - text level - int (note : représente le niveau de ta compétence dans ton arbre) parent - int ( note: id de la competence parente) reached - boolean (note: competence acquise ou non) Donc en gros pour un arbre de type: Code : Comp 1 (id : 1) Code : id | nb_point | name | level | parent | reached RE: Representation arbre tech en BDD - Argorate - 27-09-2008 Stefff: effectivement c'est une methode qui marche, mais qui est mauvaise, et qui limite le nombre d'ellement parent... Hakushi: tu ne regle pas le cas où il y a plusieurs parent là... RE: Representation arbre tech en BDD - Hakushi - 27-09-2008 La solution facile est d'avoir une table competence_parent competence_id parent_id Comme ca on peut setter plusieurs parents sur une competence donnee Code PHP :
RE: Representation arbre tech en BDD - Argorate - 27-09-2008 Heurk... que c'est moche! de l'objet php pour faire ça... :p (c'est rien, n'y vois rien de perso, je n'aime pas me servir de l'objet quand il n'y a pas de quoi en tiré un reel avantage). Bref, je prensais justement a 2 tables a la base, comme tu le suggeres, une pour constituer l'arbre, et l'autre pour les autre info a donner a chaque element. Par contre j'aurais fais une 3eme table pour dire quel perso a quel magie. C'est vraiment ce qu'il y a de mieux? RE: Representation arbre tech en BDD - Hakushi - 27-09-2008 (hs : Hehe, ouais je sais, je suis un grand partisant du tout objet, mais j'ai ete eleve au C# , donc j'ai vraiment l'habitude de tout considerer comme un objet, et je trouve vraiment ca pratique :p Et bon j'ai du mal a sortir ce genre de chose du contexte objet faut dire :x ) Oui c'est certains, je ne tenais compte que de la gestion de l'arbre, il est sur qu'il faut une table pour faire un suivi des competences sur le personnage. Pour ce qu'il y a de mieux, je sais pas, mais pour moi c'est la solution la plus obvious, et comme je suis un pourri de scientifique, pour moi la solution la plus simple me parait toujours etre la bonne. [edit] Sephi-Chan : Tu viens de combler un trou de memoire. J'avais lu cet article sur developpez.com, mais pas moyen de me souvenir des details du fonctionnement, n'y d'ou j'avais lu ca RE: Representation arbre tech en BDD - Sephi-Chan - 27-09-2008 Étrange ta vision du développement… Si représenter une compétence par un objet ne te paraît pas correct/utile, qu'est-ce qui peut l'être ? Concernant ton problème, je te suggère la représentation intervallaire, décrite dans ces deux articles :
Par contre, cette modélisation ne permet pas d'avoir plusieurs parents, en l'état. On peut simuler ce comportement, toutefois, mais je pense que l'approche de Hakushi est plus pertinente en ce cas. Je ne fais qu'ouvrir une piste. Sephi-Chan RE: Representation arbre tech en BDD - Argorate - 28-09-2008 En l'occurrence, je n'ai besoin que de connaitre quel élément le joueur possède, sachant que dans mon cas il n'en procède qu'un, il est complètement inutile de perdre du temps a créer des classes et des objets pour quelque chose que l'on récupère dans une simple variable après un SELECT... Bref, je pars donc sur se qu'on a dit, car les piste que tu fournis pourrons certainement aider dans d'autres cas, mais en l'occurrence, cela n'est pas applicable. Merci RE: Representation arbre tech en BDD - Lord-Gargoyle - 08-10-2008 Hello, Bon, je ne suis pas une référence, mais juste pour donner des idées. Alors d'abord pour la table "joueur" tu as (je vois lol) 2 solutions, soit tu fais un truc sur 1 ligne : id / joueur / lvl comp1 / lvl comp2 etc ou bien sur plusieurs lignes joueur / lvl comp1 joueur / lvl comp2 Et pour les liens, soit tu codes en dur (à chaque fois qu'une compétence est atteinte, tu regardes les compétences débloquées et par exemple tu les fait passer de -1 à 0 pour dire qu'on peut les upgrader) Ou alors par exemple si pour avoir épée de feu il faut magie + épée, et pour avoir fleche magique il faut magie + arc Tu crées une autre table "liens": épée de feu / magie épée de feu / épée fleche magique / magie fleche magique / arc Moi pour ma part, je coderais en dur et je ferais une Table avec "une seule" ligne (pour chaque joueur sous entendu)... Sinon il a l'air sympa ton jeu, le screen de ton arbre vient de ton jeu, ou c'est un arbre qui va juste ressembler au tien ? |