Yop tout le monde
Je viens requérir vos précieux conseils parce que je suis tombé sur un sacré noeud ^^
Pour faire simple, mes joueurs peuvent avoir des unités de différents types (actuellement 6 types) qui peuvent être "casernées" dans différents bastions sur la map
Jusque là rien de bien compliqué, sauf que pour taper une table sql cohérente et facilement gérable, j'ai un peu de mal.
Auparavant, il n'y avait que deux "statuts" pour les unités: Aux côtés du héros/En garnison à la capitale. Donc j'avais une table avec cette structure:
player | pattern (type de l'unité) | state (qui valait soit H, soit G)
De cette manière, ça me donnait 2*6 = 12 rangées par joueur. Mais si j'utilise cette structure avec le système de bastion qui peut aller jusqu'à 9 ou 10 bastions, ça devient conséquent par joueur: 9*6 = 54 par joueur.
(J'ai 130 joueurs actuellement, ça ferait 7000 entrées)
Et ici je parle de 6 unités, mais le jeu existe depuis à peine un mois et j'ai pas vraiment eu le temps de me consacrer à la création d'unités :hospital:
Donc, j'ai voulu tenter de modifier la structure en me disant que dés que je rajouterais un bastion, je rajouterai une colonne, comme ceci:
player | pattern | HER (auprès du héros) | SUL (en garnison à Sulysk) | OST (en garnison à Ostonessa) | ...
Le problème de ce type de structure, même si elles permettent de largement diminuer le nombre de mes entrées, c'est pour gérer les requêtes et autre. Puisque selon les factions certains bastions sont accessibles et d'autres pas. Ce qui ne facilite pas du tout le traitement des requêtes (beaucoup de bricolages en tout cas).
Je sais pas si j'ai su être très clair. J'ai pas beaucoup d'expérience de l'utilisation des bases de données à grande échelle, mais est-ce que 100 entrées de 3 colonnes relativement "pauvres" en contenu (int et varchar assez court) pour un joueur, c'est beaucoup ? Evidemment, ça fait rapidement monter l'auto-increment, mais à part ça, en termes de perfs ?
Merci d'avance pour vos éclaircissements
Je viens requérir vos précieux conseils parce que je suis tombé sur un sacré noeud ^^
Pour faire simple, mes joueurs peuvent avoir des unités de différents types (actuellement 6 types) qui peuvent être "casernées" dans différents bastions sur la map
Jusque là rien de bien compliqué, sauf que pour taper une table sql cohérente et facilement gérable, j'ai un peu de mal.
Auparavant, il n'y avait que deux "statuts" pour les unités: Aux côtés du héros/En garnison à la capitale. Donc j'avais une table avec cette structure:
player | pattern (type de l'unité) | state (qui valait soit H, soit G)
De cette manière, ça me donnait 2*6 = 12 rangées par joueur. Mais si j'utilise cette structure avec le système de bastion qui peut aller jusqu'à 9 ou 10 bastions, ça devient conséquent par joueur: 9*6 = 54 par joueur.
(J'ai 130 joueurs actuellement, ça ferait 7000 entrées)
Et ici je parle de 6 unités, mais le jeu existe depuis à peine un mois et j'ai pas vraiment eu le temps de me consacrer à la création d'unités :hospital:
Donc, j'ai voulu tenter de modifier la structure en me disant que dés que je rajouterais un bastion, je rajouterai une colonne, comme ceci:
player | pattern | HER (auprès du héros) | SUL (en garnison à Sulysk) | OST (en garnison à Ostonessa) | ...
Le problème de ce type de structure, même si elles permettent de largement diminuer le nombre de mes entrées, c'est pour gérer les requêtes et autre. Puisque selon les factions certains bastions sont accessibles et d'autres pas. Ce qui ne facilite pas du tout le traitement des requêtes (beaucoup de bricolages en tout cas).
Je sais pas si j'ai su être très clair. J'ai pas beaucoup d'expérience de l'utilisation des bases de données à grande échelle, mais est-ce que 100 entrées de 3 colonnes relativement "pauvres" en contenu (int et varchar assez court) pour un joueur, c'est beaucoup ? Evidemment, ça fait rapidement monter l'auto-increment, mais à part ça, en termes de perfs ?
Merci d'avance pour vos éclaircissements