JeuWeb - Crée ton jeu par navigateur
structure de ma 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 : structure de ma BDD (/showthread.php?tid=4486)



structure de ma BDD - php_addict - 16-12-2009

bonjour

je sollicite votre avis sur la structure de ma base de donnée

le jeu: des villages, des batiments, des troupes, peut acceuillir 30.000 joueurs

pour le moment je n'avais pas créé de TABLE batiments, j'avais mis des champs batiments sur la TABLE village

maintenant je me pose la question si je ne vais pas devoir modifier tout cela et faire une TABLE batiments contenant tout les batiments de tout les villages de tout les joueurs...

qu'en pensez-vous? quels sont les avantages et incovenient?

imaginons 30000 joueurs avec chacun 2 villages et 30 batiements par village: cela fait un TABLE batiments avec 1.800.000 entrées

c'est pas un tout petit peu enorme une table avec 2.000.000 entrées ???

en qui concerne les troupes, c'est idem, j'ai fais une table troupes, mais elle va etre egalement enorme...

quel est votre avis sur le scmilblique svp ?

bonne journée


RE: structure de ma BDD - Argorate - 16-12-2009

Tu sais, des données, si tu en as beaucoup, il faut bien les stocker quelques part...

Pour ce qui est de la modélisation de la BDD:

Table JOUEUR => liste de tes joueurs.
Table VILLAGE => liste des villages avec un id_joueur pour faire le lien avec ta Table Joueur.
Table BATIMENT => liste des bâtiments avec un id_village qui référence ta Table Village.

C'est ça la bonne décomposition puisque tu as du 1 -> * partout (UML, ça te parle?)

Sinon, si ça peut te rassurer, 2 million de tuples c'est beaucoup certes, mais c'est pas pour autant que c'est "mal".
Moi j'ai plus de 2.8 millions de tuples pour ma map (c'est que des chiffres indexés donc ça va peut être plus vite certes).

Sinon derniers petit point, je suis content de voir que tu es ambitieux, mais 30 000 joueurs, ne te fais pas trop d'illusion tu ne les aura pas tout de suite^^
D'ici là tu auras le temps de voir les problèmes de performances venir. Smile
Tu devrais enlever un 0 dans ton calcule théorique, c'est déjà plus réaliste :p


RE: structure de ma BDD - NicoMSEvent - 16-12-2009

pour l'instant, moi je fais mes calculs avec 1000 joueurs (si j'atteins ce nombre, j'estime avoir réussi le lancement de mon jeu). Et je t'assure que d'ici là, il sera encore temps de revoir l'architecture de certaines de mes tables (le plus important est de bien structurer ton code, pour ne pas dépendre de la structure de tes données, ou de ton design, et d e faire en sorte d'avoir un code qui pourrait évoluer). Je rejoins Argorate pour la structure qu'il te propose, ça me parait bon. En nombre de lignes, 2.000.000 peut te paraitre énorme, mais avec la bonne structure, els bons index, et surtout les bonnes requetes, on peut éviter les lourdeurs et avoir un système très performant! (j'ai une carte de 1.000.000 enregistrements, avec une mauvaise requete, ça prend 30 sec pour afficher une portion, avec une bonne requete, ça prend 0.02 sec pour la même portion)

Pour tes batiments, dansu n vilalge, si tu ne peux avoir que (par exmeple) 3 champs, 1 eglise, 2 silos, ... (un même nombre de batiments de chaque sorte pour tous les villages), tu peux les stocker directement dans la ligne village. Si par contre, si souhaite voir la structure de ton village varier (d'après le type de terrain qui l'entoure, ou d'après ce que le joueur construit), suis la structure de Argorate! Smile


RE: structure de ma BDD - Zamentur - 16-12-2009

Tu peux aussi envisager de mettre les bâtiments des joueurs inactif dans une autre table dédié à la sauvegarde de ces donnée non utilisées.

Quand le joueur revient tu déplaces dans la table des tuples batiment utilisés...
Ainsi tu devrait accélérer grandement ton jeu.

Et je suis d'accord avec les autres si tu as 3000 joueurs actif c'est déjà pas mal!
D'ailleurs tu sembles soucieux de pouvoir accueillir 30000 joueurs mais est ce que tu as pensé à ce qui se passe si tu n'as que 20 joueurs actif à accueillir?
(je parle en terme de fonctionnement du jeu pas en terme de performance)


RE: structure de ma BDD - QuentinC - 16-12-2009

Je pense que ça dépend de ce que tu veux faire.
Si tu veux pouvoir gérer chaque bâtiment indépendament, ou autrement dit si chaque bâtiment a ses propres caractéristiques permanentes, alors tu es obligé d'utiliser une table distincte.

Si au contraire les bâtiments n'ont pas d'état permanent particulier, alors tu peux tout mettre dans la table village.


RE: structure de ma BDD - php_addict - 17-12-2009

whaou...

merci pour tout vos conseils, je suis en train de modifier ma structure de ma BDD (et donc mon code), et j'y vois deja des avantages ;-)

en ce qui concerne le nombre de joueur que je souhaite un jour avoir, evidement ce n'est pas tres realiste pour le moment (etant donné que le jeu n'est meme pas finit ;-))))) mais je prefere voir large...et de toute facon il y aura forcement un budget pub et promo au lancement....arg....

a+