13-09-2006, 12:27 AM
Soldatclone a écrit :1)Est ce que je doit créer une table ou je regrouperai dedant toutes les unités avec un champ pour le nom, le prix, l'attaque, la défense etc. ainsi qu'une autre table pour les différents batiments qui aurons eux même leurs caractéristiques (nom,prix, production)?
Moi ça me paraît bien ton idée Je dirais oui, fais plusieurs tables.
Soldatclone a écrit :2)Un autre point que j'ai peur de ne pas avoir compris, ou dois-je stocker dans ma base mysql le nombre de batiments, unitées et technologie que le joueur a aquie au cour du jeu et qu'il vera s'afficher sur sa page membre lorsqu'il se connectera? là je sais vraiment pas, je pense pas que sa soit dans la table "membres" parce que sa ferai un peu fouilli à l'interrieur ... mais dans ce cas comment faire?
Effectivement, ça ferait fouilli.
Une idée, c'est de faire des tables "de liaisons"
Imagine, t'as une table "unit" qui recense les unités avec leurs caracs.
unit
-> id, name, price, production, ...
Ex
-> 1, 'elephant', 200, 0, ...
-> 2, 'tank', 3500, 0, ...
Et une table "player" qui recense les joueurs (ta table "membres").
player
-> id, name, email, ...
Ex
-> 1, 'toto', 'toto@free.fr'
-> 2, 'momo', 'momo@free.fr'
Tu crées une troisème table "player_unit" qui contient l'identifiant du joueur (le "id" de "player"), l'identifiant de l'unité (le "id" de "unit") et éventuellement des caracs associées directement à ce couple d'id comme une date de création ou autre chose. Tu auras dans cette table autant de ligne par joueur qu'il a d'unités.
player_unit
-> id_player, id_unit, datecreate, ...
Ex
1, 1, 01012006
1, 1, 01032006
1, 2, 01032006
2, 2, 01012006
On aura donc pour le joueur 1 (toto) 2 éléphants (créés les 1er et 3 janvier 2006) et un tank, créé le 1er mars.
Et ainsi de suite.
Peut-être qu'il est inutile de mettre plusieurs lignes par couple joueur / unité et qu'il vaut mieux en mettre qu'une avec la quantité :
player_unit
-> id_player, id_unit, quantity
A toi de voir selon ton jeu.
Tout est bien séparé maintenant. C'est plus propre, donc générera moins d'erreur
C'est un mécanisme standard en sql de créer des tables intermédiaires pour éviter de répéter les informations dans plusieurs tables. Cherches "normalisation" dans google, tu trouveras des infos sur le sujet.
Bon courage,
--
Armage