01-02-2014, 01:38 PM
Bonjour,
Je réfléchis à comment coder un inventaire hétérogène du point de vue de la DB.
Pour l'instant deux choses inévitables me viennent à l'esprit :
- Une table listant tous les items du jeu
- Une table listant tous les items en possession de tel ou tel joueur
Jusque là ça va.
Mais je veux que dans mon jeu, les joueurs puissent avoir des objets très hétérogènes dans leur inventaire :
- Des objets complètement passif (genre : bout de métal trouvé par terre)
- Des objets d'équipement (donc qu'il est possible d'équiper)
- Des armes (idem que l'équipement, mais avec un script en plus)
- Des objets de quête
- Des objets empilables
- Des objets pas empilables
- Des objets liables
- Des objets pas liables
Bref des caractéristiques très très différentes. Donc j'hésite ce qui est le mieux niveau optimisation :
- Une seule table d'items sachant que qui peut le plus peut le moins : les items lambda auront donc un grand nombre de colonnes vides
- Une table qui liste tous les items et leur type, et une table par type d'items, le tout lié par des jointures ?
- Une autre solution ?
Je penche largement pour la première option, un champ de type indique quel genre d'item c'est, et le jeu sait ainsi quels champs chercher ou non.
Des idées ? :heu:
Je réfléchis à comment coder un inventaire hétérogène du point de vue de la DB.
Pour l'instant deux choses inévitables me viennent à l'esprit :
- Une table listant tous les items du jeu
- Une table listant tous les items en possession de tel ou tel joueur
Jusque là ça va.
Mais je veux que dans mon jeu, les joueurs puissent avoir des objets très hétérogènes dans leur inventaire :
- Des objets complètement passif (genre : bout de métal trouvé par terre)
- Des objets d'équipement (donc qu'il est possible d'équiper)
- Des armes (idem que l'équipement, mais avec un script en plus)
- Des objets de quête
- Des objets empilables
- Des objets pas empilables
- Des objets liables
- Des objets pas liables
Bref des caractéristiques très très différentes. Donc j'hésite ce qui est le mieux niveau optimisation :
- Une seule table d'items sachant que qui peut le plus peut le moins : les items lambda auront donc un grand nombre de colonnes vides
- Une table qui liste tous les items et leur type, et une table par type d'items, le tout lié par des jointures ?
- Une autre solution ?
Je penche largement pour la première option, un champ de type indique quel genre d'item c'est, et le jeu sait ainsi quels champs chercher ou non.
Des idées ? :heu: