Précédent   Forum du club des développeurs et IT Pro > Général Développement > ALM > Modélisation > Schéma
Schéma Modélisation Relationnelle (Dépendances Fonctionnelles, Formes Normales, Entité-relation, MCD, MPD ...)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 17/12/2012, 19h05   #1
lolaalol
Candidat au titre de Membre du Club
 
Inscription : novembre 2011
Messages : 59
Détails du profil
Informations personnelles :
Localisation : Canada

Informations forums :
Inscription : novembre 2011
Messages : 59
Points : 13
Points : 13
Par défaut Jeu

J'ai le diagramme suivant :

J'aurais besoin d'aide pour comprendre un peu les liens entre les tables avant de commencer à coder.

dans ma table personnage j'ai un idPersonnage qui sera la primary key et des id pour chaque table qui sont en relation avec ma table personnage donc : idTete, idCorp, idMain, idRace, ... qui sont des foreigns key. Es-que c'est l'armure qui fait référence à personnage ou personnage qui fait référence à armure ?
lolaalol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2012, 22h56   #2
ericd69
Expert Confirmé
 
Avatar de ericd69
 
Homme Eric Dureuil
Développeur informatique
Inscription : avril 2011
Messages : 1 816
Détails du profil
Informations personnelles :
Nom : Homme Eric Dureuil
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : avril 2011
Messages : 1 816
Points : 3 119
Points : 3 119
salut,

ton truc est un schéma de données classique pour un jeu... mais faut se méfier de ce genre de schéma.

l'armure est un équipement comme un autre... ce qui simplifierait ta gestion et le nombre de tables
les caractéristiques des équipements peuvent être stockés dans une table associative (ce qui permet une évolution de leur nombre).

en terme de programmation ton schéma n'est pas du tout performant car beaucoup de chose peuvent être factoriser comme par exemple encore "tient" et "manie" mais aussi "porte sur x"... tout ça c'est résumable par une seule procédure "equipe" qui teste au moment de la tentative d'affectation si l'endroit convient en fonction de l'équipement, est vide (sinon remet l'objet présent dans l'inventaire puis le remplace, etc...

d'ailleurs il manque un éventuel inventaire non?

faut différencier l'action visible (la représentation, l'animation) de la gestion des données qui la codifie en interne du jeu

donc ici personnage fait référence aux pièces de l'armure comme aux autres équipements (car tu as des armures différentes pour chaque partie du corps)

__________________
soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...
ericd69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2012, 01h59   #3
lolaalol
Candidat au titre de Membre du Club
 
Inscription : novembre 2011
Messages : 59
Détails du profil
Informations personnelles :
Localisation : Canada

Informations forums :
Inscription : novembre 2011
Messages : 59
Points : 13
Points : 13
Merci pour la réponse rapide, C'est un exerice pour un cours, on ne va pas vraiment implenter le jeu. Il y a juste le lien entre personne et armure qui m'énerve un peu. Dans Personnage je vais avoir 5 id's, qui seront des foreigns keys, pour les 5 parties du corps. Mais dans ma table armure sa va être quoi ma primary key ? es-que sa peut être les 5 id's des parties du corps ? Sa me foure un peu le fait qu'il y est 5 liens vers une seule table.
lolaalol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2012, 12h32   #4
ericd69
Expert Confirmé
 
Avatar de ericd69
 
Homme Eric Dureuil
Développeur informatique
Inscription : avril 2011
Messages : 1 816
Détails du profil
Informations personnelles :
Nom : Homme Eric Dureuil
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : avril 2011
Messages : 1 816
Points : 3 119
Points : 3 119
oui bien sur mais comme je te l'ai dit faut penser plus simple et efficace...

si tu figes l'évolution du game play:

perso:
Citation:
id
id_main_droite
id_main_gauche
id_torse
id_tete
id_bras
id_bottes
force
...
esprit
après comme je te l'ai dit tout est un équipement:

caracteristiques:
Citation:
id
nom
types:
Citation:
id
nom
emplacements:
Citation:
id
nom
code_emplacement
equipements:
Citation:
id
id_type
nom
code_emplacement
equipements_caracteristiques:
Citation:
id
id_equipement
id_caracteristique
valeur
tu noteras que le principe pour les caractéristiques des objet peut s'appliquer au personnages mais avec soit une table de liaison spécifique (pour ne pas à avoir de collision entre id de personnage et des objets) soit en rajoutant une colonne pour savoir si c'est l'un ou l'autre dans la table de liaison (le nom "equipements_caracteristiques" n'étant plus valable bien sur)...

à toi donc de voir si ton schéma ne mériterais donc pas d'être amélioré...

c'est jamais tant l'outil de modélisation qui compte (tu peux largement t'en passer) que la réflexion...

si tu fais le schéma à partir des table que je te donne il va grandement se simplifier tout en étant plus ouvert...

tout se récupère en une à 3 jointures... très courtes... puis tu traites coté sgbd en procédural par exemple

le code d'affectation sur le corps d'un objet est un "and bitwise" entre celui de l'objet et celui de la partie du corps dans la table emplacements), par exemple:
  • droite: 0000001
  • gauche: 00000010
  • droite et gauche: 00000011
  • tete: 10000000
  • torse: 01000000
  • jambes: 00100000
  • bras: 00010000

une épée à donc pour code: 00000011
tu veux l'affecter à la main droite dont le code est 00000001, le test serait:
Citation:
00000011 & 00000001
ce qui donne une valeur différente de 0, tu sais donc que tu peux l'affecter

ça te donne comme ça d'autres pistes
__________________
soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...
ericd69 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 18/12/2012, 20h50   #5
lolaalol
Candidat au titre de Membre du Club
 
Inscription : novembre 2011
Messages : 59
Détails du profil
Informations personnelles :
Localisation : Canada

Informations forums :
Inscription : novembre 2011
Messages : 59
Points : 13
Points : 13
D'accord merci pour l’éclaircissement. Au sujet de la Table "Effet" comment je fais, car un personnage peut être affecté par plusieurs effets et un équipement aussi peut être affecté par plusieurs effets.

J'ai par exemple dans ma table effet cette liste :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
Protection du feu 
o  Protection de l’air 
o  Protection de la terre 
o  Protection de l’eau
o  Bouclier de feu
o  Force de géant
o  Régénération
o  Esprit vif
o  Rapidité
o  Lenteur
o  Esprit distrait
o  Enracinement
o  Bouclier magique
Comment je vais faire pour savoir par combien / ou quel(s) effet est affecté le personnage puisque je ne peux pas avoir un nombre indéterminé de lien.
lolaalol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2012, 23h43   #6
ericd69
Expert Confirmé
 
Avatar de ericd69
 
Homme Eric Dureuil
Développeur informatique
Inscription : avril 2011
Messages : 1 816
Détails du profil
Informations personnelles :
Nom : Homme Eric Dureuil
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : avril 2011
Messages : 1 816
Points : 3 119
Points : 3 119
tes effets vont agir pendant un temps sur une ou plusieurs caractéristiques, ça peut ressembler à ça pour faire simple:

effets:
Citation:
id
id_caracteristique
debut
fin
valeur
dans cette approche tu gères 1 ligne par caractéristique affectée pour un effet

autre approche:

effets:
Citation:
id
nom
effets_caracteristiques:
Citation:
id
id_caracteristique
valeur
effets_application:
Citation:
id
id_effet
debut
fin

au final ça revient à faire le listing des caractéristiques du personnage union celui des équipements union celui des effets puis un group by par id_caractéristique en sommant valeur.

en fonction de l'action, tu lis les caractéristiques finales obtenues correspondantes
__________________
soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...
ericd69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2012, 18h25   #7
lolaalol
Candidat au titre de Membre du Club
 
Inscription : novembre 2011
Messages : 59
Détails du profil
Informations personnelles :
Localisation : Canada

Informations forums :
Inscription : novembre 2011
Messages : 59
Points : 13
Points : 13
Merci pour ton aide ericd69, ce la m'a beaucoup aidé.
lolaalol est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 03h47.


 
 
 
 
Partenaires

Hébergement Web