07-03-2010, 10:53 PM
Merci beaucoup tout le monde
En tout cas ton exemple correspond bien à ce que j'ai envie de faire :haha:
@ Aleskweb > Cela semble moins gourmand en ressource mais je ne pourrai pas gérer autant d’effet que je le souhaite avec cette solution. Certains états seront très courants et pourraient bénéficier de cette technique mais je vais pas rajouter une table intermédiaire ou ajouter des tas de colonnes juste pour les effets plus rares. Ça serait pas très propre je pense.
Encore merci pour toutes vos réponses, j'y vois déjà plus clair maintenant
(07-03-2010, 06:02 PM)Sephi-Chan a écrit : Pour commencer, un petit conseil : n'appelle pas ta table "cases" ou "case", c'est un mot clé réservé (comme "force") par MySQL et ça te posera des problèmes (y compris dans le nommage de tes variables/classes). Je te conseille plutôt le terme "tuile" (en anglais tile, tiles au pluriel), habituel dans les jeux de plateau.Merci pour cette précision, je ne savais pas et justement dans ma bdd fait sous workbench j’avais mis « cases ». :$
(07-03-2010, 06:02 PM)Sephi-Chan a écrit : Le défaut de ton approche, c'est qu'on peut n'avoir qu'un effet et qu'un état par case.Euh oui effectivement ces relations sont quasiment obligatoires ici mais je sais pas pourquoi dans mon esprit j’étais déjà parti dans un truc loufoque, comme à mon habitude. Enfin bref je vais opter pour cette solution.
Admettons le cas suivant :
- Le joueur mort-vivant maudit un lopin de terre ;
- Un elfe de la nuit voit ça et — choqué — décide d'entamer une prière à la déesse de la lune pour y déverser la lumière ;
- Un élémentaire de glace apparaît, éclate l'elfe et le mort-vivant puis gèle le sol ;
Comment fais-tu ? Le sol a 3 états qui auront probablement tous une durée différente.
Il vaut mieux mettre en place une relation N, N avec une table pour les états (states), une table pour les tuiles (tiles) et une table de relation states_tiles qui dispose des colonnes :
- state_id, qui fait référence à l'un des états de la table states ;
- tile_id, qui fait référence à l'une de tes 250000 tuiles
En tout cas ton exemple correspond bien à ce que j'ai envie de faire :haha:
(07-03-2010, 08:27 PM)Zamentur a écrit : Concernant la question sur les performance:Ça me parait indispensable, un gain d'1/4 c'est énorme. Cela est il bien supporté par des frameworks ? (depuis que j'ai gouté aux framework je peux plus m'en passer)
Ce sera pas trop gourmand si tu mets les index sur x et y, c'est ce que j'avais fait pour Ragol et çà avait accéléré les pages d'1/4 du temps (et je parle pas du gain de temps sur la génération du gps: passage de 8s à 2s).
@ Aleskweb > Cela semble moins gourmand en ressource mais je ne pourrai pas gérer autant d’effet que je le souhaite avec cette solution. Certains états seront très courants et pourraient bénéficier de cette technique mais je vais pas rajouter une table intermédiaire ou ajouter des tas de colonnes juste pour les effets plus rares. Ça serait pas très propre je pense.
Encore merci pour toutes vos réponses, j'y vois déjà plus clair maintenant