[Résolu] Ma base de donnée est-elle correcte ? - 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 : [Résolu] Ma base de donnée est-elle correcte ? (/showthread.php?tid=6482) |
[Résolu] Ma base de donnée est-elle correcte ? - Konroy - 08-12-2012 Bonjour à tous, je me remet à la prog et je développe un petit jeu de fight entre joueur , ou chacun posséde différentes arme, armures... J'ai pensais a une bdd du type joueurs id pseudo... armes botte 1 admin epée1 botte1 id-botte -- nom --- id-joueur -- caracteristique ----- defense ---prix 10 --- botte1 -- 1 -- botte mystique --- 12 -- 5 Ca le fait comme ca ? Merci :langue2: RE: Ma base de donnée est t'elle correcte - Sephi-Chan - 08-12-2012 Non, ce n'est pas bon. Tu ne dois pas avoir l'id du joueur dans la table des bottes puisque tu as l'id de la botte dans la table des joueurs. Voilà une meilleure structure :
RE: Ma base de donnée est t'elle correcte - Mighty - 08-12-2012 Salut, Il faut essayer d'éviter les redondances. La défense et le prix peuvent-ils varier ? et si oui, les changements peuvent-ils être calculés simplement ? Cela dépend aussi de ton système d'équipement. Il te faudrait minimum 3 tables - joueurs - equipements - joueurs_equipements Cordialement Mighty Edit : Trop rapide Sephi RE: Ma base de donnée est t'elle correcte - djidi - 08-12-2012 @Sephi-chan: Ce ne serait pas encore mieux de ne faire qu'une seule table "objets" en regroupant armes et bottes ? RE: Ma base de donnée est t'elle correcte - Sephi-Chan - 08-12-2012 @ Mighty : le modèle a 3 tables me semble uniquement pertinent si l'on peut posséder plusieurs objets (et en équiper seulement un par emplacement) ou bien si l'on peut personnaliser les objets. Mais c'est effectivement l'approche la plus flexible. @ Djidi : Clairement. RE: Ma base de donnée est-elle correcte ? - Konroy - 08-12-2012 Il y aura un système d'inventaire, donc oui on pourra posséder plusieurs objet, mais être equipé que d'un seul. 3 tables sont privilégiés donc? Merci RE: Ma base de donnée est-elle correcte ? - Sephi-Chan - 08-12-2012 Dans ce cas tu as besoin d'une structure a 3 tables telles que :
Ici, on utilise la table equipements pour stocker tous les équipements. La colonne type permet de les distinguer.Cette table contient les colonnes utiles à tous les équipements, même si certaines colonnes ne sont pas utiles à certains équipement. Ici, la colonne puissance ne sert à rien pour une botte, donc on la laisse vide (valeur NULL ).La dernière table sert à indiquer les objets possédés par chaque joueur, et la colonne equipe permet de savoir si un objet est équipé ou non. Ici, le joueur 1 disposedes objets 4 (qui est équipé) et 3 (qui n'est pas équipé). Le joueur 2 dispose seulement de l'objet 4 (qui est équipé). L'écriture des requêtes SQL est un peu plus délicate avec cette approche, mais c'est a priori ce que tu peux avoir de mieux. RE: Ma base de donnée est-elle correcte ? - Konroy - 08-12-2012 Niquel c'est exactement ce que je recherchais, si on possedes bcp d'objets, ca serait plus claire d'avoir une tables pour chaques types d'equipements , ou c'est plus lourd ? RE: Ma base de donnée est-elle correcte ? - Sephi-Chan - 08-12-2012 Avoir une table pour chaque type d'équipement n'apporterait rien et alourdirait le volume de code et le temps d'exécution (puisqu'on ne pourrait plus récupérer l'ensemble de l'équipement d'un personnage d'une seule requête). RE: [Résolu] Ma base de donnée est-elle correcte ? - Konroy - 08-12-2012 Ok tu m'as convaincu ^^ Merci ! |