Demande de conseil. Porblème de conception.

Eléphanteau du PHP | 37 Messages

23 sept. 2007, 09:52

J'expose mon problème :
J'ai une base de données contenant une table users dont les items contiennent des informations sur chaque membre inscrit (mail, adresse....).
Chaque membre peut jouer à des jeux, faire des exercices avec un gain de points. Or je me demande si j'ajoute les points pour chaque jeux dans la table users ou il faut créer une autre table.
Je ne vois pas la décision à prendre.
J'ajoute également que chaque utilisateur pourra regarder ses statistiques.
Merci à ceux qui m'apporteront un éclairage.
MERCI.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

23 sept. 2007, 11:30

Si tu veux conserver le détail de ce qu'a fait le joueur, il te faudra une table associative entre la table USER et la table JEUX.

Code : Tout sélectionner

+---------+ +-----------+ +---------+ | User | | user_game | | Game | +---------+ +-----------+ +---------+ | id_user |<-->| id_user |<-->| id_game | | ... | | id_game | +---------+ +---------+ | game_date | | result | | nb_points | +-----------+
Dès qu'un joueur joue à un jeu, tu inserts une ligne dans la table USER_GAME. Quand le joueur termine le jeu, tu peux stocker dans cet enregistrement le résultat du jeu et le nombre de point qu'il a marqué.
A partir de là, tu as le détail des parties de chaque joueur, à quel jeu, quelle date, quel résultat et quel points.

Tu peux également stocker le nombre de points dans la table USER pour éviter de grosses requêtes de calcul de points, voir même, ça te permettre de mettre en place de pénalités en cas de fraudes.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 37 Messages

23 sept. 2007, 12:39

Donc si je comprend bien il vaut mieux créer une nouvelle table et en même temps insérer le score dans la table user. Donc il faut faire deux requêtes non ?