IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Schéma Discussion :

Découper un jeu en "parties"


Sujet :

Schéma

  1. #21
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Par défaut
    Citation Envoyé par Nirvv
    Avec une jointure, vu que le membre sera sur une case, qui appartiendra elle-même à une partie précise, forcément. Non ?
    ==> c'est vrai.

    Il vaut mieux établir une modalisation "complexe" et transiger en partant de cette base de travail, plutôt que de transiger directement sur une modélisation qui n'existe pas... ou simplement dans notre tête. Donc, effectivement, si tu le souhaites, tu peux simplifier cette modélisation.

  2. #22
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Je suis en train de bosser sur ce nouveau modèle

    Juste une petite question sur :
    Partie_Gang(#IdPartie, #IdGang, …)
    Partie_Gang_Parrain(#IdPartie, #IdGang, #IdMembreParrain, …)

    La table "Partie_Gang" est-elle nécessaire ? Dans la pratique, toutes les parties auront les mêmes gangs.
    Exemple : J'ai 4 gangs dans "Gangs".
    J'ai 4 parties.
    Et bien, les 4 parties auront les 4 gangs dedans. C'est juste que certains auront des parrains, et d'autres non, selon la partie.

    Du coup, j'ai l'impression que seule la table:
    Partie_Gang_Parrain(#IdPartie, #IdGang, #IdMembreParrain, …)
    peut me donner toutes les informations que je souhaite.

    En effet, si j'ai 4 parties, 4 gangs. J'ai juste à mettre 16 lignes dans "Partie_Gang_Parrain", avec les Parrain à NULL pour les gangs (en début de partie). Lorsqu'un membre va parrainer un gang "disponible", la FK deviendra l'id du membre.

    Ca pourrait aller non ?

    PS : Qu'utilises-tu pour faire tes MCD ?

    PS² : Il y a-t-il de vrais conventions au niveau des noms de tables et noms de champs ? Je veux dire, à part éviter les accents et les espaces ?
    Utilises-ton une notation particulières comme : Nom_De_Table ou nomdetable ou nomDeTable ?
    De même pour les champs ? On est plutôt Nom_Champ ou nomChamp ?

    Merci encore

    EDIT :
    Selon Symfony 2 :
    "Ce n'est pas possible de mapper l'entité Cases avec une clé composé comme partie d'une clé primaire d'une autre entité GangCasePartie".
    Je rappelle GangCasePartie (j'ai changé un peu le nom, perso :p ) : GangCasePartie(#idPartie, #idGang, #IdCarte, #abscisse, #ordonne)
    Avec Symfony2, je ne peux donc pas dire "mets la PK composée de Cases comme partie de PK de GangCasePartie".. Il accepte pas.

    Ma seule solution est de créer une clé Primaire IDCase dans "Cases".. En mettant Unique le reste bien sur.
    Dernière modification par Invité ; 24/01/2015 à 18h08.

  3. #23
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Par défaut
    Bonjour Nirvv,

    Citation Envoyé par Nirvv
    En effet, si j'ai 4 parties, 4 gangs. J'ai juste à mettre 16 lignes dans "Partie_Gang_Parrain", avec les Parrain à NULL pour les gangs (en début de partie). Lorsqu'un membre va parrainer un gang "disponible", la FK deviendra l'id du membre.

    Ça pourrait aller non ?
    ==> attention, le couple de table :
    Partie_Gang(#IdPartie, #IdGang, …)
    Partie_Gang_Parrain(#IdPartie, #IdGang, #IdMembreParrain, …)
    est nécessaire pour éviter le "bonhomme NULL" toujours très mal géré dans les bases de données (dans les jointures et autres).

    Je te renvoie à cet excellent billet de CinePhil qui balaye tous les cas possibles des cardinalités entre deux entités.


    Citation Envoyé par Nirvv
    Qu'utilises-tu pour faire tes MCD ?
    ==> j'utilise JMerise. Sans me servir de la partie MLD : je préfère construire mes tables moi-même.


    Citation Envoyé par Nirvv
    Il y a-t-il de vrais conventions au niveau des noms de tables et noms de champs ? Je veux dire, à part éviter les accents et les espaces ?
    Utilises-ton une notation particulières comme : Nom_De_Table ou nomdetable ou nomDeTable ?
    De même pour les champs ? On est plutôt Nom_Champ ou nomChamp ?
    ==>
    • Nom des tables : toujours au singulier (on se doute que, généralement, il y aura plusieurs enregistrement dans une table) ;
    • Nom des champs : pas de convention. Chacun y va de sa norme....



    Citation Envoyé par Nirvv
    Selon Symfony 2 :
    "Ce n'est pas possible de mapper l'entité Cases avec une clé composé comme partie d'une clé primaire d'une autre entité GangCasePartie".
    Je rappelle GangCasePartie (j'ai changé un peu le nom, perso :p ) : GangCasePartie(#idPartie, #idGang, #IdCarte, #abscisse, #ordonne)
    Avec Symfony2, je ne peux donc pas dire "mets la PK composée de Cases comme partie de PK de GangCasePartie".. Il accepte pas.

    Ma seule solution est de créer une clé Primaire IDCase dans "Cases".. En mettant Unique le reste bien sur.
    ==> conclusion : il faut éviter Symfony 2. Je ne vois pas d'où sort cette "règle". Ceci dit, comme évoqué précédemment, tu peux passer par un Id auto-incrémenté et créer un index unique. Attention aux craintes décrites précédemment.

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo