Système d'inventaires 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 : Système d'inventaires BDD (/showthread.php?tid=2766) |
RE: Système d'inventaires BDD - Ter Rowan - 28-11-2010 alors il y a un problème de formulation dans ta phrase : Citation :Dans ta table Item tu fais une requète de type select count(id) where type = 'potion' où potion peut être une clé étrangère et ça te renverra le nombre de potion je comprends cette phrase comme étant : pour avoir le nombre de potions (d'un personnage) on fait un count(id) where.... du coup tu utilises cette table, que tu appelles Item, comme la table qui porte l'inventaire, d'où mes réactions maintenant si j'ai compris de travers c'est autre chose RE: Système d'inventaires BDD - Kihmé - 28-11-2010 En fait j'ai donné un exemple bidon pour montrer comment utiliser le count, le choix du champs dans le count, le where etc... sont fictifs, il ne faut pas y voir une proposition, c'était juste pour montrer comment fonctionne le count rien de plus. RE: Système d'inventaires BDD - aurlien - 28-11-2010 Et bin j'en apprend des choses n’empêche que on voit bien la différence de niveau .... (a force je vais m'embrouillé ) RE: Système d'inventaires BDD - niahoo - 29-11-2010 +1 ter rowan, je vais pas filer à mes players un champ uranium, un champ pommes, un champ t-shirts, un champ épées+2force, etc. Mais effectivement on mélange les concepts de ressource commune à tous (genre or/bois/pierre dans age of empires), les items genre épées, les items différenciables genre épée avec usure à 3, aiguisage à 5 + pommeau magique ajouté. Dans le fond on est plutot d'accord d'après ce que j'ai pu lire ici. Mais par contre là ou je ne suis pas d'accord sur le count(), c'est que la seule raison valable (y compris pour merise) de stocker un item par tuple, c'est que cet item puisse être unique. Pour être unique, il faut qu'il ait des particularités comme on à proposé (usure, bonus ajoutés, modifications). Mais dans ce cas, à quoi peut bien te servir le count() ? A quoi te sert-il de savoir que tu as 10 fusils si pas un n'est pareil. Alors ok, mettons que tu joues plusieurs personnages. tu as 5 persos, tu as 5 fusils, ça tombe bien. Maintenant tu vas quand même prendre les fusils un par un pour voir lequel est le plus adapté à chaque personnage (puisuqu'ils sont différenciés par des modifs) ; il y aura un personnage qui sera plus balèse avec une machette, un autre auquel tu vas plutot faire jouer du soutien, un troisième qui ne sait pas encore utiliser ce fusil. À mon sens, avoir le count(), le décompte, sert quand les items sont pareils et que tu les brasses: combien j'ai de cuissots de viande pour donner à mes nobles dans Anno 1404, combien j'ai de marbre dans Zeus pour construire mon temple. Et dans ce cas là, la meilleure modélisation reste de stocker la quantité d'items dans une relation n,n entre l'entité joueur et l'entité objet. Ce qui va généralement se traduire dans une table (joueur, item, quantité), ou parfois, comme tu l'as présenté, et quand peu d'items différents sont présents en jeu, dans un champ quantité_or, quantité_bois, quantité_pierre directement dans la table joueur. (ou dans une table ressource pour plus de lisibilité mais qui ne sera qu'un "morceau" séparé de la table joueur. Dans le cas de nos 5 fusils, là chacun aura son tuple perso, bien sur, mais pour la seule raison qu'ils ne se stackent pas puisque ils sont uniques. |