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

Modélisation Discussion :

Base pour Association Sportive de Bowling [AC-2007]


Sujet :

Modélisation

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 22
    Points : 10
    Points
    10
    Par défaut Base pour Association Sportive de Bowling
    Bonjour tout le monde,

    Voilà je commence tout juste à me plonger dans les bases de données avec Access 2007 et une chose est sur c'est que je galère!! (Enfin surtout à commencer la base de données)
    Je m'y connais (un peu) en ce qui concerne en macro et vb mais BDD...
    Enfin bref comme le dit l'intitulé je cherche à créer une base de données pour mon association sportive de Bowling. En gros il faudrait que la base de données contienne plusieurs tables.
    - La 1ere sera toutes les infos concernant le membre de l'association (nom, prénom, date de naissance, adresse, tel, adresse mail, date d'entrée au club, numéro de licence).
    Ensuite c'est là que je me perds un peu (beaucoup). Les membres du club peuvent jouer à une ou plusieurs ligues dans la semaine (lundi, mardi 1, mardi 2, mercredi et jeudi). Toutes ces ligues non pas les memes caractéristiques (nb de partie, nb de joueur, horaire et avec ou sans handicap).
    Ensuite je souhaiterais que consulte un membre je puisse voir ces infos (évidemment) mais aussi toutes ces parties jouées, ces stats (meilleurs scores, meilleurs séries, moyenne scores...) et enfin ces graph qui représentent toutes ces parties.
    Bon je crois que je vais m'arreter là sinon c'est un bouquin que je vais finir par écrire.

    En tout cas merci d'avance à tous ceux qui ont pris le temps de lire et/ou de m'aider.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour et bienvenue sur le forum Office de DVP

    Le Hic, c'est que tous les membres ne sont pas des adeptes du bowling, donc sans cahier des charges précis et explications de ce que tu nommes les ligues cela va être dur de te répondre (à moins qu'un de nos membres ait des notions sur cela).

    Donc il faudrait plus de détails (sans écrire toutes les règles )

    Philippe

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    Oups oui c'est vrai ça serait mieux!! dsl
    bon en fait il y a plusieurs ligues dans une semaine (toutes différentes et non liées les unes aux autres.) En gros un peu comme toutes les 1ère division en football(L1, First League....).
    Un membre du club peut donc participer à autant de ligue qu'il souhaite (de 0 à 5).
    La Ligue du Lundi: équipe de 3 personnes jouant 3 parties d'affilées avec handicap.
    La ligue du Mardi 1: équipe de 2 personnes jouant 4 parties d'affilées avec handicap.
    La ligue du Mardi 2: équipe de 2 personnes jouant 4 parties d'affilées avec handicap.
    (2 ligues le mardi car une a 18h45 et l'autre à 21h15)
    La Ligue du Mercredi: équipe de 3 personnes jouant 3 parties d'affilées avec handicap.
    Et enfin Ligue du Jeudi: équipe de 2 personnes jouant 5 parties d'affilées sans handicap.
    Voilà pour les caractéristiques des différentes Ligues.
    Pour prendre exemple avec moi:
    quand je lance ma BDD il faudrait que je me sélectionne, avec un bouton je rentre mes parties (pour le calcul des points ça je connais le code déjà), mon handicap du jour (il n'est jamais fixe car calculé sur la moyenne des points) et aussi que je sélectionne sur quelle ligue j'ai effectué ces parties, ensuite si je retourne sur mon profil, j'ai un autre bouton pour afficher l'ensemble de mes parties, encore un autre pour afficher mes stats (moyenne général, plus grande partie, plus petites parties,....) et enfin encore un dernier bouton afin d'afficher des graphiques (courbes avec toutes mes parties, courbes avec toutes mes séries avec et sans handicap....)
    Enfin bien évidemment sur la page d'accueil il faudrait un bouton afin d'enregistrer des nouveaux membres du club.

    En espérant avoir été un peu plus explicite

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    Bon je commence à avancer (enfin je crois)!
    Par contre je voudrais savoir: est il plus simple que je fasse une table par ligue (avec index, dateLigue, horaire) ou une table pour toute les ligues (avec index, NomLigue, Dateligue, horaire)?

  5. #5
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 796
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 796
    Points : 58 207
    Points
    58 207
    Billets dans le blog
    42
    Par défaut
    Bonjour GregShakur,

    Citation Envoyé par GregShakur
    Bon je commence à avancer (enfin je crois)!
    Tu pourrais nous joindre ce que tu as déjà fait (copie d’écran de la fenêtre des relations d’Access) pour voir de quoi il retourne ?

    Citation Envoyé par GregShakur
    …est il plus simple que je fasse une table par ligue (avec index, dateLigue, horaire) ou une table pour toute les ligues (avec index, NomLigue, Dateligue, horaire)?
    En principe une table pour toutes les ligues devrait convenir. Seulement, selon la complexité du problème (et des règles du bowling), il sera peut-être intéressant de sous-typer les ligues (Ligue sous-typé en LigueAvecHandicap et LigueSansHandicap pour donner un exemple).

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    Voilà ci joint deux écran de relation suivant si je fait une table par ligue ou si je fais une table pour toutes les ligues.

    Par contre si je te suis bien sur le "sous-typage" de mes ligues il serait alors peut mieux de faire des "sous-typage" du style: Ligue_Lundi, Ligue_Mardi, Ligue_Mercredi et Ligue_jeudi?
    Images attachées Images attachées

  7. #7
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 796
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 796
    Points : 58 207
    Points
    58 207
    Billets dans le blog
    42
    Par défaut
    Bonsoir,

    Citation Envoyé par GregShakur
    Par contre si je te suis bien sur le "sous-typage" de mes ligues il serait alors peut mieux de faire des "sous-typage" du style: Ligue_Lundi, Ligue_Mardi, Ligue_Mercredi et Ligue_jeudi?
    Oups, n’anticipons pas car j’ai dit aussi :
    Citation Envoyé par f-leb
    En principe une table pour toutes les ligues devrait convenir…
    En l’état, la clé étrangère Joueur.Ligue indique que un joueur→une ligue or tu as écrit :
    Citation Envoyé par GregShakur
    Un membre du club peut donc participer à autant de ligue qu'il souhaite (de 0 à 5).
    Il faut donc revenir aux bases (voir Access – les bases)

    Citation Envoyé par GregShakur
    …quand je lance ma BDD il faudrait que je me sélectionne, avec un bouton je rentre mes parties…
    Le concept « Partie » rentre en jeu. On peut écrire une règle de gestion du style : la partie du Mercredi 22 décembre opposant les équipes trucs compte pour la ligue du Mercredi.
    Soit, Partie-----compter------Ligue : « compter » association de type « un à plusieurs »

    Une partie oppose deux équipes (ou plus, je ne sais pas) et une équipe peut jouer plusieurs parties:
    Partie----opposer----Equipe : « opposer » de type « plusieurs à plusieurs ».

    Une équipe comprend plusieurs joueurs (selon la ligue, donc un champ NbreJoueursParEquipe à rajouter dans la table Ligue) et un joueur peut faire partie de plusieurs équipes (puisqu’il peut participer à plusieurs ligues).
    Equipe----faire partie----Joueur : « faire partie » de type « plusieurs à plusieurs ».

    Si on recolle ces bouts de schéma, on obtient le schéma à débattre:
    Ligue----compter----Partie----opposer----Equipe----faire partie----Joueur
    (voir le chapitre associations&cardinalités pour le passage aux tables).

    Pour l’instant j’ai passés sous silence tout ce qui concerne l’enregistrement des scores et des handicaps.
    Because, je n’ai aucune idée de la façon dont tu veux les enregistrer (un exemple de déroulement d’une partie peut-être ? Faut-il enregistrer les scores individuels ? par équipes ? ). Quant au handicap, j’ai en effet remarqué que jouer au bowling un verre à la main était très handicapant mais à part ça

    f-leb
    ex-champion de la ligue « Vendredi soir »

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    Oups je vais trop vite!!
    Bon alors si je te suis bien:
    Pour que j'ai un joueur -> plusieurs ligues, il faut que je crée un champ JoueurID dans ma table Ligue et que je fasse pointer ma clé Joueurs.Index vers ce nouveau champ? (dsl le lien que t'as donnée me renvoi vers un tutoriel qui n'est pas tout a fait complété, donc j'ai chercher sur le web pour mieux comprendre enfin essayer)

    Concernant l'enregistrement des parties des joueurs, je ne ferais en aucun cas (pour l'instant du moins) référence aux adversaires. La BDD servira juste à faire un bilan des parties de chaque joueurs.
    Pour le calcul des scores et la mise en page "idéal" ci-joint un fichier xls ou j'avais commencé à me faire les dents.
    Fichiers attachés Fichiers attachés

  9. #9
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 796
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 796
    Points : 58 207
    Points
    58 207
    Billets dans le blog
    42
    Par défaut
    Bonjour,
    Citation Envoyé par GregShakur
    …le lien que t'as donnée me renvoi vers un tutoriel qui n'est pas tout a fait complété…
    Mais que fait l’auteur ? ;-)

    Malgré tout, tu vas encore trop vite. Le chapitre II. Conception dont tu as besoin pour l’instant est tout à fait complet.

    Citation Envoyé par GregShakur
    Pour que j'ai un joueur -> plusieurs ligues, il faut que je crée un champ JoueurID dans ma table Ligue et que je fasse pointer ma clé Joueurs.Index vers ce nouveau champ?
    Oui mais d’un autre côté, tu te retrouves avec une ligue à un seul joueur

    Si tu veux modéliser : Joueur----participer-----Ligue tu dois te poser les questions :
    Dans le sens Joueur→Participer→Ligue : Est-ce que un {Joueur} peut {participer} à plusieurs {Ligue} ? OUI
    Dans le sens Ligue→Participer→Joueur : Est-ce que dans une {Ligue} peuvent {participer} plusieurs {Joueur} ? OUI

    {participer} est une association « plusieurs à plusieurs ».

    Donc il faut une table supplémentaire Participer(#idJoueur, #idLigue) qui fait la jonction entre Joueur et Ligue :
    Joueur-1-----∞-Participer-∞-----1-Ligue


    Concernant ton tableau xls, il ne m’aide pas beaucoup à comprendre ce que tu veux (des dates, des frames ?? des scores avec des X, des / ???).
    Je devine des parties (jouées à des dates) et qui comptent pour des ligues, donc : Partie----compter----Ligue

    Peut-être : Joueur-----participer-----Partie (je ne voie pas de joueurs dans ton fichier xls) à raccorder à une table Score comme tu l’avais proposé :
    Joueur-1----∞-Participer-∞-----1-Partie-∞-----1-Ligue

    Un joueur à une partie réalise un score :
    Score-∞-----1-Partie
    Score-∞----1-Joueur

    Je te laisse poursuivre l’étude car pour l’instant je n’ai rien de mieux à proposer sinon que t’inciter à poursuivre la lecture du tutoriel (tu verras ce n’est pas si difficile).
    Tu commences à faire un schéma en associant des entités Ligue, Joueur, Partie,… un peu comme je l’ai fait puis après avoir dérivé ton schéma en tables (étude des associations) tu testes ton schéma sous Access en rentrant un jeu de données.

    Bien sûr, n’hésite pas à revenir pour discuter de ton schéma si nécessaire...

    Joyeuses fêtes de Noël à toi et au forum.

    PS : par rapport à tes schémas, quelques conventions usuelles de notation :
    - Mettre le nom des tables au singulier. On se doute bien que la table « Joueur » va comporter plusieurs joueurs, la table « ligue » plusieurs ligues etc…
    - Mettre un nom différent pour la clé primaire de chacune des tables, par exemple : idJoueur, idLigue, idScore…
    - Pour la clé étrangère, il est commode de prendre le même nom que la clé primaire à laquelle elle est reliée : clé étrangère Partie.idLigue reliée à la clé primaire Ligue.idLigue, etc…

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    Merci f-leb déjà de prendre tout ce temps pour m'aider.

    Concernant les règles du bowling:
    Une partie ou ligne se joue en 10 frames, soit 10 fois les 10 quilles à faire tomber.
    On doit en 2 lancers maximum, abattre les 10 quilles, si possible.
    En 1 seul lancer, on a réussi le Strike ("X" dans le fichier .xls).
    En 2 lancers, on réalise alors un Spare ("/" dans le fichier .xls) ou une fermeture.
    S'il reste des quilles après les 2 lancers, on appelle çà un trou
    Enfin les chiffres en rouge sont des Splits, c'est quand il reste des quilles "trop éloignées" l'une de l'autre et qu'il est quasi impossibles ou difficiles à fermer.

    Ensuite voici comment ce calcul un score de bowling:
    Pour une frame et 2 lancers n'ayant pas permis d'abattre toutes les quilles, on comptabilise les quilles de chaque lancer, soit 9 au maximum pour 1 frame.
    Un Spare compte 10 plus les quilles du lancer suivant, soit 20 au maximum si le lancer suivant est 1 Strike.
    Un Strike compte 10 plus les quilles des 2 lancers suivants, soit 30 au maximum si les 2 lancers suivants sont des Strikes.
    Le score parfait maximum est ainsi de 300.
    Le Spare est symbolisé par une barre dans la 2ème case de la frame sur la feuille de score.
    Le Strike est symbolisé par une croix dans la 1ère case de la frame sur la feuille de score.
    La dernière frame possède 3 cases pour permettre de compléter Spare ou Strike à cette frame avec les lancers suivants.

    Ensuite d'après tes explications (et tes conseils) et aussi du chapitre II. Conception, j'en ai tiré les tables et relations suivantes (voir .pdf).
    Ensuite concernant le tableau .xls: enfaite c'est surtout pour la mise en page que je voudrais avoir (mais bon ça normalement dans un bon formulaire devrait etre suffisant).

    Mais bon chaque chose en son temps. Je vais déjà enregistrer seulement le scrore scratch final de la personne ainsi que son handicap du jour et son score final handicap (score final scratch + handicap). Bien évidemment avec le jour, la date et l'heure de la ligue à laquelle il a fait ce score.

    Voilà je crois (enfin j'espère) avoir enfin compris les quelques subtilité d'Access.

    Bonnes fêtes à toi aussi et au forum.
    Images attachées Images attachées

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    Bon comme quoi la nuit porte conseil, je me suis apperçu de ma boulette!!
    Le relation entre ligue et score est vraiment toute fausse. Ca doit etre une relation: Ligue 1..........n score et non Ligue n...........n score comme j'ai fait dans le pdf.

  12. #12
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 796
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 796
    Points : 58 207
    Points
    58 207
    Billets dans le blog
    42
    Par défaut
    OK, voilà qui est plus clair !

    Citation Envoyé par GregShakur
    Mais bon chaque chose en son temps. Je vais déjà enregistrer seulement le score scratch final de la personne ainsi que son handicap du jour et son score final handicap (score final scratch + handicap). Bien évidemment avec le jour, la date et l'heure de la ligue à laquelle il a fait ce score.
    Et voilà qui est raisonnable, tu pourras toujours faire évoluer ton modèle lorsque tu te seras fait les crocs

    Je reprends un extrait de ton fichier xls et j’essaye de recoller les morceaux des messages précédents:

    Le 14/09/2009 étant un Lundi, cette série compte pour la ligue « Lundi : Equipe de 3 personnes jouant 3 parties d’affilée… »
    On a donc une série jouée le 14/09/2009 qui compte pour une ligue :
    Serie(idSerie, DateSerie,…., #idLigue)
    Serie-∞--------1-Ligue

    La série compte plusieurs parties, une partie compte pour une série. Les scores de la partie devront être enregistrés dans la table Partie:
    Partie(idPartie, NumPartie, #idSerie, …, ScoreFinalScratch, Handicap)
    Partie-∞-------1-Serie

    Attention, ScoreFinalHandicap est une donnée calculée (= ScoreFinalScratch +Handicap), donc inutile de la stocker.
    De même, SeriesScratch et SeriesHandicap sont calculables en regroupant les résultats des parties de la série.
    Néanmoins, pour faciliter les traitements, tu peux envisager de dé-normaliser la base (à tes risques et périls) en rajoutant les champs SeriesScratch et SeriesHandicap dans la table Serie.

    Il reste à raccorder les joueurs et là je suis moins sûr,
    « Lundi : Equipe de 3 personnes jouant 3 parties d’affilée… »
    Si je comprends bien, 1 partie=1 joueur de l’équipe (à confirmer).
    Dans ce cas, Partie(idPartie, NumPartie, #idSerie, …, #idJoueur, ScoreFinalScratch, Handicap)
    Partie-∞------1-Joueur

    A étudier quand tu auras fini de déballer tes cadeaux

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    Je pense que l'on peut encore simplifier:
    En prenant tjs exemple sur la ligue du lundi. Donc 1 équipe de 3 personnes faisant 3 parties chacune = 9 parties pour une journée donné du lundi.
    Score- ∞-------1 -Ligue
    Puisque toi meme tu dis "ScoreFinalHandicap est une donnée calculée (= ScoreFinalScratch +Handicap), donc inutile de la stocker.". Idem pour la série par personne (série joueur1= partie1 joueur1+partie2 joueurs1+partie3 joueur3) mais aussi la série équipe (série joueur1+série joureur2+série joueur3). Donc pas besoin de créer une table "Série"!?! enfin si je peux me permettre!!

  14. #14
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 796
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 796
    Points : 58 207
    Points
    58 207
    Billets dans le blog
    42
    Par défaut
    Bonjour,

    Je reprends ton schéma précédent en tenant compte de ta correction : Score-∞-------1-Ligue
    Joueur-1-----∞-Participer-∞-----1-Ligue-1------∞-Score
    puis Score-∞-----1-Joueur

    Soit le jeu de données dans les tables Participer et Score :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Participer :
    idJoueur    idLigue    DateParticipation  …
        1        1          14/09/2009
        1        1          21/09/2009
        1        1          28/09/2009
        2        1          14/09/2009
        3        1          14/09/2009
        4        1          14/09/2009
        5        1          14/09/2009
        6        1          14/09/2009
    Le joueur (idJoueur=1) participe à la ligue du Lundi (idLigue=1) les 14,21 et 28/09/2009 etc…

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Score :
    idLigue   idJoueur  ScoreFinalScratch    Handicap 
       1          1          184                32
       1          1          183                30
    Les questions qu’on peut se poser maintenant, auxquelles il est impossible de répondre avec ce modèle, c’est par exemple :
    - Le score de (184+32) a-t-il été obtenu le 14 ? le 21 ? Ou le 28/09/2009 ??
    - Si le 14/09/2009 tu avais deux équipes de trois joueurs engagés (idJoueur=1 à idJoueur=6), comment étaient constituées les équipes ??

    Peut-être me trompé-je par rapport à ton cahier des charges mais si tu veux pouvoir répondre à ce genre de questions, il faudra bien faire intervenir les concepts de Partie (avec ses propriétés ScoreFinalScratch et Handicap), Série, voire Equipe,…

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    salut,

    Euh bah je pense que si. Puisque que dans ma table Ligue j'ai un champ "DateLigue" donc à chaque nouvelle date mon "IdLigue" change. Donc mon score est bien "unique" vu que mon "IdScore" est lié au "IdLigue".
    Par contre effectivement il faut que j'intègre le nom de l'équipe car si la saison prochaine j'ai deux équipes du club qui jouent le meme jour et aux memes horaires il va bien falloir que je les distingues.
    J'ai donc rajouté un champ "Nom Equipe Ligue" dans la table "Ligue" et "Participer" ce qui devrait bien les différencier.
    Bon bah je pense que la c'est un bon début et que mes tables et mes relations sont finies!?!
    Images attachées Images attachées

  16. #16
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 796
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 796
    Points : 58 207
    Points
    58 207
    Billets dans le blog
    42
    Par défaut
    Salut GregShakur,

    Citation Envoyé par GrekShakur
    …Puisque que dans ma table Ligue j'ai un champ "DateLigue" donc à chaque nouvelle date mon "IdLigue" change.
    Il y a ici une confusion sémantique sur la notion de « ligue ». « La ligue du Lundi », ce n’est pas la même chose que « les parties du 14/09/2009 », non ?

    Citation Envoyé par GrekShakur
    bon en fait il y a plusieurs ligues dans une semaine (toutes différentes et non liées les unes aux autres.) En gros un peu comme toutes les 1ère division en football(L1, First League....).
    Un membre du club peut donc participer à autant de ligue qu'il souhaite (de 0 à 5).
    La Ligue du Lundi: équipe de 3 personnes jouant 3 parties d'affilées avec handicap.
    La ligue du Mardi 1: équipe de 2 personnes jouant 4 parties d'affilées avec handicap.
    ...
    Et enfin Ligue du Jeudi: équipe de 2 personnes jouant 5 parties d'affilées sans handicap.
    Tu le dis toi-même, tu as CINQ ligues. La table TabLigue doit donc comporter CINQ lignes….et ne mélangeons pas ces dates qui sont des dates de PARTIES comptant pour une LIGUE.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    idLigue     LibelleLigue           nbreJoueursparEquipe    nbparties   AvecHandicap
      1         "Ligue du Lundi"                   3               3       Oui
      2         "Ligue du Mardi1"                  2               4       Oui
    …..
    Citation Envoyé par grekShakur
    …aussi que je sélectionne sur quelle ligue j'ai effectué ces parties…
    Avec une liste déroulante de source TabLigue comprenant tes 5 ligues, tout simplement.

    Mes messages précédents étaient basés sur cette table, peut-être qu’en les relisant cela prendra alors un meilleur sens pour toi…

    Citation Envoyé par GregShakur
    Bon bah je pense que la c'est un bon début et que mes tables et mes relations sont finies!?!
    Il y a quand même de quoi s’interroger: les champs Jourligue, DateLigue, horaireLigue, lieuLigue apparaissent dans deux tables, ce n’est jamais une bonne chose. N’y vois-tu pas une redondance à stocker deux fois les mêmes données ?

    Citation Envoyé par grekShakur
    Par contre effectivement il faut que j'intègre le nom de l'équipe car si la saison prochaine j'ai deux équipes du club qui jouent le même jour et aux mêmes horaires il va bien falloir que je les distingue.
    J'ai donc rajouté un champ "Nom Equipe Ligue" dans la table "Ligue" et "Participer" ce qui devrait bien les différencier.
    Re-re-redondance… NomEquipeLigue deux fois. Et la table TabLigue qui comporte des ligues, des parties dans des ligues, des équipes… Dans la même logique, pourquoi ne pas alors rajouter des champs pour les noms, prénoms,… des joueurs dans TabLigue ??

    Ces redondances (façon Excel) ne vont pas simplifier : ni le maintien de la cohérence des données (le bor… le jour où tu t’apercevras que le 05/01/2010 est un Mardi et non un Lundi==>mises à jour de plusieurs lignes dans deux tables, rien que ça…), ni les mises à jour, ni l’écriture des requêtes, ni la construction de l’IHM, ni l’évolution de l’application…

    De quoi écrire un pacson de lignes de codes VBA pour combler les lacunes du schéma initial…


    Bref, ton modèle ne me convainc pas

    Tu gagnerais en simplicité, non pas en essayant d’économiser des tables, mais en identifiant les entités (« Une entité est une population d’individus homogènes ») et en les nommant… par leur nom.

    Citation Envoyé par GrekShakur
    …il y a plusieurs ligues dans une semaine…
    …j'ai un autre bouton pour afficher l'ensemble de mes parties

    …aussi que je sélectionne sur quelle ligue j'ai effectué ces parties
    …La BDD servira juste à faire un bilan des parties de chaque joueur.
    Il suffit en effet de nommer un chat, un chat : créer une table TabPartie naturellement reliée à TabLigue et TabJoueur.
    Rien qu’avec ces quatre lignes (et les règles du bowling que tu m’as appris), j’écris:
    TabLigue-1-------∞-TabPartie-∞-------1-TabJoueur, ben oui, what else ?
    TabPartie (idPartie, DatePartie, #idJoueur, #idLigue, ScoreFinalScratch, handicap,…)

    Pas plus compliqué que ça.

    Tu remarqueras que, au même titre que idJoueur→Nom, idJoueur→Prenom,… (la connaissance de l’identifiant du joueur, donne sans ambigüité son nom, prénom,…), on a bien idPartie→DatePartie, idPartie→idJoueur, idPartie→idLigue…(la connaissance de l’identifiant de la partie, donne sans ambigüité la date où s’est déroulée la partie, le joueur de la partie, la ligue pour laquelle compte la partie, etc.)

    Alors que dans ta table TabLigue : idLigue→NomEquipe n’est pas évident…

    Avec mes messages précédents, je pense avoir fait le tour de la question. A toi de voir et de faire les bons choix

  17. #17
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    Oui effectivement c'est la meme chose.
    Concernant mes redondances je l'avais "fait exprès" dans le sens ou si un jour l'horaire de ma ligue ou le jour de ma ligue changent, par ex, mes anciennes parties garderons "en mémoires" les anciens jours ou/et anciens horaires.

    Bon donc si je comprends bien ce que tu me dis la table "TabPartie" va me servir "à remplacer" la table "TabParticiper"? Donc du coup les infos que j'avais dedans son basculés dans la table "TabPartie".
    Ce qui donne comme tu la dis:
    TabJoueur-1-------∞-TabPartie-∞-------1-TabLigue, avec:
    TabJoueur(IdJoueur, Nom, Prenom, Adresse.....)
    TabPartie(IdPartie, #IdLigue, #IdJoueur, DatePartie, HorairePartie, LieuPartie, NomEquipe, ScoreScratch, Handicap, ScoreHandicap)
    TabLigue(IdLigue, JourLigue, NbJoueurParEquipe, NbPartie, BoolHandicap(oui/non))

    J'avoue ça simplifie mon schema!!

    Thank you very much

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. base access pour association
    Par norore_172 dans le forum Access
    Réponses: 2
    Dernier message: 28/03/2015, 13h58
  2. pb pour associé un fichier chm avec un projet MFC
    Par Cédric_07 dans le forum MFC
    Réponses: 9
    Dernier message: 05/12/2006, 15h56
  3. Recrutement pour le jeux tow bowl tactics
    Par tuxrouge dans le forum Projets
    Réponses: 1
    Dernier message: 10/03/2006, 12h25
  4. Recherche base pour gérer un championnat de rugby
    Par linou dans le forum Décisions SGBD
    Réponses: 14
    Dernier message: 06/04/2005, 18h39
  5. [FMP]Exporter une base pour Excel2003
    Par Jack55 dans le forum Autres SGBD
    Réponses: 1
    Dernier message: 23/12/2004, 10h59

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