Salut, je pense que tu n'abordes pas le problème de la bonne façon. Lorsque tu penses ta base de données, tu dois te demander quel est le meilleur moyen pour stocker tes infos de manière organisée, structurée, et éventuellement évolutive.
Il ne faut pas confondre les entités et les champs. Tu ne devrais jamais avoir à rajouter des champs pour des données qui sont des occurrences. Les champs sont réservés aux propriétés.
Pour ton problème par exemple, les bastions sont des entités, non pas les propriétés d'une map ou autre.
D'après ce que j'ai compris :
un joueur a des unités.
les unités sont dans des bastions
il y a plusieurs bastions sur une map. ( y a plusieurs maps ? )
une unité peut être de différents types.
Donc a priori, je verrais un truc comme ça :
En ce qui concerne les performances, il vaut mieux avoir deux tables liées, qu'une table avec plein de champs, car dans ce cas, tu as pour tous tes enregistrements un tas de champs inutilisés qui alourdissent tes requêtes.
Une table avec 100 enregistrements est insignifiant. Tu pourrais multiplier ce nombre par 100, 1000, 100000 ça ne poserait pas de problème ( à condition d'utiliser convenablement les index ).
Si tu as de la motivation et du temps, tu peux te pencher sur MERISE, un ensemble de méthodes qui t'aident à faire ta base de données en partant de tes besoins.
Edit :
A la lecture du post de Ruz, je me rends compte que j'ai pas pris en compte la possibilité pour les unités d'être avec le héros, mais ce serait pas compliquer à gérer
Il ne faut pas confondre les entités et les champs. Tu ne devrais jamais avoir à rajouter des champs pour des données qui sont des occurrences. Les champs sont réservés aux propriétés.
Pour ton problème par exemple, les bastions sont des entités, non pas les propriétés d'une map ou autre.
D'après ce que j'ai compris :
un joueur a des unités.
les unités sont dans des bastions
il y a plusieurs bastions sur une map. ( y a plusieurs maps ? )
une unité peut être de différents types.
Donc a priori, je verrais un truc comme ça :
En ce qui concerne les performances, il vaut mieux avoir deux tables liées, qu'une table avec plein de champs, car dans ce cas, tu as pour tous tes enregistrements un tas de champs inutilisés qui alourdissent tes requêtes.
Une table avec 100 enregistrements est insignifiant. Tu pourrais multiplier ce nombre par 100, 1000, 100000 ça ne poserait pas de problème ( à condition d'utiliser convenablement les index ).
Si tu as de la motivation et du temps, tu peux te pencher sur MERISE, un ensemble de méthodes qui t'aident à faire ta base de données en partant de tes besoins.
Edit :
A la lecture du post de Ruz, je me rends compte que j'ai pas pris en compte la possibilité pour les unités d'être avec le héros, mais ce serait pas compliquer à gérer