JeuWeb - Crée ton jeu par navigateur
Organisation des tables - 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 : Organisation des tables (/showthread.php?tid=309)

Pages : 1 2


Organisation des tables - fiatt - 08-10-2006

Salut tout le monde!

Après des mois d'abscence je me décide enfin à me remettre à mon projet.

Voici mon soucis actuel:

J'essaye d'organiser mes tables pour la distribution des ressources du joueur.

Un joueur possède des machines et ces machines produisent de la ressource.
Chaque machine ne produit qu'un seul type de ressource (5 types différents) mais le joueur peut posséder plusieurs machines.

J'ai donc au moins 2 tables: joueurs et machines

Mais pour les ressources? dois-je les mettre dans une table "ressources" et si oui quelle pourrait être la clé primaire?
Puis-je utiliser le clé primaire de la table "joueur" (Id_joueur) pour la mettre, toujours en clé primaire, dans la table "ressources" et y gérer les stocks des joueurs?

Merci de votre aide.


RE: Organisation des tables - Michu - 08-10-2006

De toute facons, pour pouvoir redonner les bonnes ressources aux bons joueurs il te faut un champ contenant soit l'id du joueur, soit son pseudo.

Pour des questions de rapidité il vaut mieux utiliser un id plutôt que des caractères mais pour éviter les erreur tu peut aussi mettre les 2.

moi je ferais comme ceci :

id_joueur | ressource_1 | ressource_2 |...|ressource_5


RE: Organisation des tables - joshua - 09-10-2006

je te conseille de faire bien plus de tables:
joueur
machine
ressource
joueur_machine
machine ressource


comme ca tu fais le modele qui va bien dans lequel tu définis tes carac générales dans les noms "de base" et le specifique dans les "tables à nom mixtes".
C'est vachement bien pour définir un modele objet mais ca t'oblige deriere a utiliser les contraintes sur els tables (style innoDB) qui dérriere t'assureront de la cohérence du tout.

exemple: joueur: [id, nom]
machine: [id,nom]
joueur_machine [id_joueur,id_machine] where id_joueur = joueur.id et id_machine = machine.id
l'avantage de ce modèle est de te faciliter la POO derrière avec un modele objet proche de ton modele en base.
Passez a php5!! Big Grin


RE: Organisation des tables - fiatt - 09-10-2006

Merci de votre aide.

Que pensez-vous de cette organisation:

Première table: Joueurs avec id_pseudo (clé), pseudo, etc
Seconde table: Machines avec id_machine (clé) , ressource_produite, vitesse_production etc
Troisième table: Stock avec id_pseudo (clé étrangère), id_machine (clé étrangère également), stock_dispo, stock_max, date_dernier_calcul etc

Ce qui fait que les deux premières tables sont utilisées pour stocker les infos des joueurs et des machines alors que la troisième sert à faire les calculs et y mettre les résultats.


RE: Organisation des tables - joshua - 09-10-2006

le contenu est bien mais le nom pourra porter a confusion quand tu auras 50 tables....


RE: Organisation des tables - fiatt - 09-10-2006

Oui c'est vrai, mais les noms ne sont pas définitif.

Par contre j'ai du coup un autre problème.
L'utilisation de Clés étrangères n'est pas supporté par les tables MyIsam...et je ne sais pas quoi mettre en clé primaire de cette table...


RE: Organisation des tables - joshua - 09-10-2006

si! il te suffit simplement de mettre en place innoDB ^^
Allez un peu de recherche google, tu verras c'est pas dur... le plus dur est de retrouver ses tables le jour ou tu changes de pc!


RE: Organisation des tables - fiatt - 09-10-2006

ok je vais tenter merci de ton aide.


RE: Organisation des tables - fiatt - 09-10-2006

mouais...bon j'ai tenter la création de tables innoDB mais je bloque sur la mise ne place de foreign keys avec phpmyadmin....impossible de savoir comment définir qu'un champ est une clé étrangère.

Je vais probablement me simplifier la tache et ne faire q'une seule table.


RE: Organisation des tables - joshua - 09-10-2006

tsss ne fait pas de betises ^^
La difinition de clé étrangère se fait tout simplement après avoir créé ta table.
Tu la créé simplement ensuite tu vas dans el récapitulatif et tu dois avoir un onglet ajouter des relations ou un truc dans le genre, et hop c'est tout simple.