Je ne m'en tiens personnellement avec une seule table joueur_competences (id_joueur | id_competence | points).
Dans l'idée où je n'ajouterai des compétences que très rarement (mon arbre de base étant déjà très "touffu" ^^), je me suis "limité" à les répertorier et les coder directement dans un fichier PHP. Je ne me voyais pas les rajouter dans la base de données alors qu'elles allaient n'être que très rarement modifiées. De plus cela me permettait, à mon goût, de coder plus facilement les dépendances qui sont assez complexes dans mon projet.
Sinon, j'ai il y a un petit moment été m'intéresser à Mangos, un émulateur de serveur WoW. Si j'ai tout désinstallé maintenant, j'ai tout de même gardé les tables MySQL du serveur. Si je n'ai vu aucune table parlant des talents et de leur dépendances, je n'ai pas trouvé grand chose non plus côté stockage de l'arbre pour chaque joueur. M'est avis donc que ce stockage est compris dans le champ "data" de la table "character", et dont voici son contenu pour l'un de mes persos que j'avais créé à l'époque (entier, le champ étant de type "longtext") :
Quelques petites précisions sur ce champ : il ne contient pas la race, la position, la classe, ni l'id du pet, ni encore les sorts qu'il possède, ni les quêtes faites/en cours, ni le contenu de l'inventaire, ni les infos de guilde, ni les id des amis, ni les kills effectués, ni les infos d'instance, ni les infos de groupe, ni les réputations, et j'en oublie encore plein. En gros il y a tellement d'infos qui ne sont à priori pas contenu dans ce champ que je pense fortement que l'arbre des talents est stocké ici (sans doute parmi d'autres choses).
A titre de comparaison, les tables relatives à l'émulateur sont au nombre de 126 (seulement, je dirai, pour un jeu comme WoW).
Amicalement,
PS : Je vous encourage à télécharger au moins une version d'une DB de Mangos (ou Ascent), juste pour voir comment l'émulateur se charge de stocker tout ça (ce qui n'est sans doute pas la façon qu'utilise Blizzard pour stocker ses infos, mais c'est déjà ça ^^)
Dans l'idée où je n'ajouterai des compétences que très rarement (mon arbre de base étant déjà très "touffu" ^^), je me suis "limité" à les répertorier et les coder directement dans un fichier PHP. Je ne me voyais pas les rajouter dans la base de données alors qu'elles allaient n'être que très rarement modifiées. De plus cela me permettait, à mon goût, de coder plus facilement les dépendances qui sont assez complexes dans mon projet.
Sinon, j'ai il y a un petit moment été m'intéresser à Mangos, un émulateur de serveur WoW. Si j'ai tout désinstallé maintenant, j'ai tout de même gardé les tables MySQL du serveur. Si je n'ai vu aucune table parlant des talents et de leur dépendances, je n'ai pas trouvé grand chose non plus côté stockage de l'arbre pour chaque joueur. M'est avis donc que ce stockage est compris dans le champ "data" de la table "character", et dont voici son contenu pour l'un de mes persos que j'avais créé à l'époque (entier, le champ étant de type "longtext") :
Citation :2 0 25 0 1065353216 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4819 4442 0 0 100 0 4819 4442 1000 0 100 0 70 35 513 0 0 0 0 0 0 0 0 0 4104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4294967040 4294901760 0 0 0 0 0 0 0 0 4294967295 0 0 0 0 1140457472 1157234688 1155097645 1065353216 1069547520 49 49 0 1125802405 1130317835 1107633298 1107633298 0 0 0 0 0 0 0 1065353216 0 0 0 0 138 77 162 118 97 0 0 1100480512 1095761920 0 0 0 0 0 0 169 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3917 4399 10240 466 0 0 0 0 0 1065353216 1073741824 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 0 0 84214273 33554432 0 0 0 7 0 0 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 367 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 43 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 25049 0 0 0 0 0 0 2803 2803 2804 2824 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7725 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 1073741824 0 0 0 0 0 0 4 1073741824 0 0 0 0 99 1073741824 0 0 0 0 0 0 0 0 237 1073741824 0 0 0 0 26 1073741824 43 1073741824 0 0 0 0 0 0 6 1073741824 7 1073741824 87 1073741824 5 1073741824 36 1073741824 10 1073741824 89 1073741824 3 1073741824 97 1073741824 353 1073741824 12 1073741824 91 1073741824 28 1073741824 14 1073741824 105 1073741824 233 1073741824 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 235 1073741824 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 785800 98 24576375 0 55 22937950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 22937950 0 594 22937950 0 754 22937950 0 0 0 0 0 0 0 0 0 0 473 22937950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 762 19661100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 673 24576375 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1079264324 1092616192 0 1094432326 1087859851 1087859851 1083830174 1095563215 1096611791 1090121630 1090121630 1090121630 1090121630 0 1703967 16942016 58721299 4152561690 2231288346 204999556 3427008624 1073741930 139340 1181483168 802619392 2147483648 436207628 134880 201326592 72 17301536 45136 3221225609 2993171968 9430529 1645443 2097156 1728382976 71304193 1073741824 1838090 536897544 1679294464 1611137216 2147484160 0 0 0 51904545 42467328 445456 32 0 131072 844288 32770 0 8192 100732928 0 4736 393216 0 90112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2151529767 0 15 38 15 15 15 15 0 0 0 0 0 0 0 1065353216 1065353216 1065353216 1065353216 1065353216 1065353216 1065353216 15 0 262144 33803 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4294967295 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1099536794 0 70 0 0 0 0 0 0 0 0 0 0 0
Quelques petites précisions sur ce champ : il ne contient pas la race, la position, la classe, ni l'id du pet, ni encore les sorts qu'il possède, ni les quêtes faites/en cours, ni le contenu de l'inventaire, ni les infos de guilde, ni les id des amis, ni les kills effectués, ni les infos d'instance, ni les infos de groupe, ni les réputations, et j'en oublie encore plein. En gros il y a tellement d'infos qui ne sont à priori pas contenu dans ce champ que je pense fortement que l'arbre des talents est stocké ici (sans doute parmi d'autres choses).
A titre de comparaison, les tables relatives à l'émulateur sont au nombre de 126 (seulement, je dirai, pour un jeu comme WoW).
Amicalement,
PS : Je vous encourage à télécharger au moins une version d'une DB de Mangos (ou Ascent), juste pour voir comment l'émulateur se charge de stocker tout ça (ce qui n'est sans doute pas la façon qu'utilise Blizzard pour stocker ses infos, mais c'est déjà ça ^^)