Partage
  • Partager sur Facebook
  • Partager sur Twitter

Aide pour passage du MCD vers script SQL

    17 mars 2011 à 13:24:18

    Bonjour,

    J'ai créé le modèle MCD de ma base de donnée avec AnalyseSI pour avoir ce résultat :
    Image utilisateur

    Cependant, ce logiciel me génére un MLDR bizare :

    Citation



    Users (id, username, password, email, usr_borndate, usr_registertime_at, usr_lastconnect_at, usr_ip, usr_avatar, usr_roleinteam, is_active, is_super_admin, #user_rang_id)
    user_rangs (user_rang_id, user_rang_name, user_rang_image)
    news (news_id, news_title, news_date_at, news_text, news_image, news_stars, #id, #news_category_id)
    websites (website_id, website_name, website_url, website_available_space, website_used_space, is_website_interne, #nk_theme_id)
    teams (team_id, team_name, team_created_at, team_level, team_gameserver, is_team_recruits, #game_id)
    nk_themes (nk_theme_id, nk_theme_name, nk_theme_path, nk_theme_weight, nk_theme_screenshot)
    nk_modules (nk_module_id, nk_module_name, nk_module_path, nk_module_description, nk_module_screenshot, nk_module_weight)
    news_categories (news_category_id, news_category_name, news_category_description)
    games (game_id, game_name, game_image)
    tournaments (tournament_id, tournament_name, tournament_startdate_at, tournament_enddate_at, tournament_maxnumbersofteams, tournament_status, tournament_numberofregistreredteams)
    partners (partner_id, partner_name, partner_url, partner_image, partner_priority, #id)
    trophies (trophy_id, trophy_position, trophy_image, #team_id, #tournament_id)
    gameplays (gameplay_id, gameplay_name, gameplay_description)
    matchs (match_id, match_teamid1, match_teamid2, match_numberofplayers, match_status, match_tournament_poule, match_score_team1, match_score_team2, match_level, match_durationofmatch, match_dateofmatch_at)
    maps (map_id, map_name, map_image)
    Commenter (id, news_id, news_comment_created_at, news_comment_text)

    Creer (id, website_id, team_id)
    Rejoindre (id, team_id)
    Installer (website_id, nk_module_id)
    Sinscrire (team_id, tournament_id, is_teamshareaserver)
    Organiser (id, tournament_id)
    Se_faire_sur (tournament_id, gameplay_id, game_id)
    Jouer (team_id, match_id)
    Se_faire_sur2 (match_id, gameplay_id, map_id)
    Organiser2 (id, match_id)
    Controler1 (id, map_id)
    Controler2 (id, gameplay_id)
    Controler3 (id, game_id)
    Controler5 (nk_theme_id, id)
    Controler4 (nk_module_id, id)



    Normalement la plupart des associations n'apparaissent pas dans le script SQL, or là il me les mets toutes.

    J'aimerais donc savoir comment faire pour avoir un bon script SQL à la fin ??

    Merci à vous.
    • Partager sur Facebook
    • Partager sur Twitter
      17 mars 2011 à 14:23:49

      Citation : KaNa

      Normalement la plupart des associations n'apparaissent pas dans le script SQL


      Ben les relations nécessaires apparaissent (à première vue), où est le problème ?
      • Partager sur Facebook
      • Partager sur Twitter
      Ce n'est pas parce que vous ne savez pas vous servir d'un marteau qu'il faut planter des clous au tournevis.
        17 mars 2011 à 15:49:51

        Pour moi par exemple si on prends les table Users et News qui sont reliées de la manière suivante :

        {User}--(0,N)--[rediger]--(1,1)--{News}
        Devient :
        User(id,...)
        News(id,#id_user,...)

        L'association rédiger ne devrait plus apparaître ... Et qui en effet après relecture n'apparaît effectivement pas xD ... J'suis *** !!

        Mise à part ça mon MCD est-il juste ????
        • Partager sur Facebook
        • Partager sur Twitter
          17 mars 2011 à 19:01:03

          J'ai regardé vite fait, et le seul truc que j'ai relevé c'est la propriété portée par l'association s_inscrire alors qu'elle est hiérarchique.
          Ha et aussi, il devrait peut-être y avoir des agrégations d'entités sur les associations se_faire_sur 1 et 2. D'ailleurs, il serait bien d'avoir des nom un peu plus explicite que controler1, controler2 et controler3.
          • Partager sur Facebook
          • Partager sur Twitter
            18 mars 2011 à 10:00:25

            Tout d'abord merci pour ta réponse.

            Citation : pierreet

            Il serait bien d'avoir des nom un peu plus explicite que controler1, controler2 et controler3.



            J'ai corrigé cela :

            Citation : KaNa

            users (user_id, user_name, user_password, user_email, user_borndate, user_registertime_at, user_lastconnect_at, user_ip, user_avatar, user_roleinteam, #userrang_id)
            userrangs (userrang_id, userrang_name, userrang_image)
            news (new_id, news_title, new_date_at, new_text, new_image, new_stars, #user_id, #newscategory_id)
            websites (website_id, website_name, website_url, website_available_space, website_used_space, website_interne, #nktheme_id)
            teams (team_id, team_name, team_created_at, team_level, team_gameserver, team_recruits, #game_id)
            nkthemes (nktheme_id, nktheme_name, nktheme_path, nktheme_weight, nktheme_screenshot)
            nkmodules (nkmodule_id, nkmodule_name, nkmodule_path, nkmodule_description, nkmodule_screenshot, nkmodule_weight)
            newscategories (newscategory_id, newscategory_name, newscategory_description)
            games (game_id, game_name, game_image)
            tournaments (tournament_id, tournament_name, tournament_startdate_at, tournament_enddate_at, tournament_maxnumbersofteams, tournament_status, tournament_numberofregistreredteams)
            partners (partner_id, partner_name, partner_url, partner_image, partner_priority, #user_id)
            trophies (trophy_id, trophy_position, trophy_image, #team_id, #tournament_id)
            gameplays (gameplay_id, gameplay_name, gameplay_description)
            matchs (match_id, match_teamid1, match_teamid2, match_numberofplayers, match_status, match_tournament_poule, match_score_team1, match_score_team2, match_level, match_durationofmatch, match_dateofmatch_at)
            maps (map_id, map_name, map_image)

            Commenter (user_id, new_id, comment_created_at, comment_text)
            Creer (user_id, website_id, team_id)
            Rejoindre (user_id, team_id)
            Installer (website_id, nkmodule_id)
            Sinscrire (team_id, tournament_id, is_teamshareaserver)
            Organisertournament (user_id, tournament_id)
            Tournamentsefairesur (tournament_id, gameplay_id, game_id)
            Jouer (team_id, match_id)
            Matchsefairesur (match_id, gameplay_id, map_id)
            Organisermatch (user_id, match_id)
            Controlermap (user_id, map_id)
            Controlergameplay (user_id, gameplay_id)
            Controlergame (user_id, game_id)
            Controlertheme (nktheme_id, user_id)
            Controlermodule (nkmodule_id, user_id)



            Image utilisateur

            Citation : pierreet


            J'ai regardé vite fait, et le seul truc que j'ai relevé c'est la propriété portée par l'association s_inscrire alors qu'elle est hiérarchique.


            Tu voudrais dire que le schéma suivant :
            {team}--(0,N)--[Sinscrire]--(1,1)--{tournament}
            deviendrais :
            team(team_id,...)
            tournament(tournament_id,#team_id,is_teamshareaserver,...)

            Aie-je bien compris ? Parce que dans ce cas cela ne va pas fonctionner, puisque pour un tournois il va y avoir autant de donnée que de team inscrite ... avec des id différents :/

            Citation : pierreet


            Ha et aussi, il devrait peut-être y avoir des agrégations d'entités sur les associations se_faire_sur 1 et 2.



            Comment faire pour représenter des agrégations ??

            Merci pour tout.
            • Partager sur Facebook
            • Partager sur Twitter
              18 mars 2011 à 15:44:49

              Citation : KaNa


              Tu voudrais dire que le schéma suivant :
              {team}--(0,N)--[Sinscrire]--(1,1)--{tournament}
              deviendrais :
              team(team_id,...)
              tournament(tournament_id,#team_id,is_teamshareaserver,...)

              Aie-je bien compris ? Parce que dans ce cas cela ne va pas fonctionner, puisque pour un tournois il va y avoir autant de donnée que de team inscrite ... avec des id différents :/


              Donc je pense que l'association sinscrire doit être non-hiérarchique (0,n--0,n) (et elle aurait bien une propriété portée).

              Citation : KaNa

              Citation : pierreet

              Ha et aussi, il devrait peut-être y avoir des agrégations d'entités sur les associations se_faire_sur 1 et 2.


              Comment faire pour représenter des agrégations ??


              Tu fais des associations d'associations (mais avec AnalyseSI ce n'est pas possible)
              • Partager sur Facebook
              • Partager sur Twitter
                18 mars 2011 à 16:58:11

                Citation : pierreet

                Donc je pense que l'association sinscrire doit être non-hiérarchique (0,n--0,n) (et elle aurait bien une propriété portée).



                Donc ma relation :
                {team}--(0,N)--[Sinscrire]--(1,N)--{tournament}
                deviendrais :
                team(team_id,...)
                tournament(tournament_id,...)
                sinscrire(#team_id,#tournament_id,is_teamshareaserver)

                Sinon, je pourrais ajouter une table inscription pour les tournois ??

                Citation

                Tu fais des associations d'associations (mais avec AnalyseSI ce n'est pas possible)


                Avec quel logiciel je peux faire ça sans avoir à tout refaire ? workbench de mysql ou poweramc ??


                • Partager sur Facebook
                • Partager sur Twitter
                  19 mars 2011 à 18:58:52

                  Bonjour, désolé pour le doublon mais je voulais avoir votre avis suite à des informations que j'ai pu lire sur internet.

                  Pour les associations Matchsefairesur et Tournamentsefairesur, je pense que ces associations ne doivent pas être transfomé en table lors du passage au modèle MLD, car il y a une relation 1,1, c'est donc la table avec la relation 1,1 qui doit hérité des références aux identifiants des autres tables.

                  Dans mon cas la table Matchs et Tournaments recevront dans leurs champs #map_id et #game_id comme clé étrangère.

                  Est-ce bien correcte ?

                  Puis j'ai pensé pour simplifier la méthode d'inscription à un tournois, de créer une table Inscription qui aura une association avec la table Team et une autre avec la table Tournament. Sauf si ce que j'ai mis dans le message précédent est juste, ce n'est pas la peine ...

                  Merci pour vos réponses,

                  Cordialement.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    19 mars 2011 à 21:23:21

                    Je ne sais pas trop ce que tu veux modéliser, pour t'aider il va falloir que tu m'expliques. Qu'est ce qu'un gameplay? un games? quelle est la différence entre matchs et tournaments
                    Je pense qu'en effet il y a une erreur de conception à ce niveau là (je n'avais pas vu ça la première fois). Une ternaire ne peut pas avoir une patte avec une cardinalité maximum à 1. Ce qui confirme l'idée d'une agrégation d'entités.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      19 mars 2011 à 21:29:08

                      Alors pour expliquer de manière simple :

                      Un tournois est un ensemble de matchs un peu comme une coupe du monde au foot avec différentes poules.
                      Pour un tournois, il est organisé sur un game( counter strike par exemple ou autre ... ) et un gameplay ( capture du drapeau, elimination ...)
                      Mais il peut y avoir également des matchs fait entre deux équipe aussi sans passer par un tournament.

                      Pour créer un match entre deux équipes, une des équipes doit créer un matchs en indiquant l'équipe adverse.
                      Pour ce qui est du tournament, il sera créér par un admin et les teams devront s'inscrire afin de pouvoir y participer.

                      J'espère avoir été assez claire :) .
                      • Partager sur Facebook
                      • Partager sur Twitter
                        22 mars 2011 à 12:57:36

                        pierreet, est-ce que tu as pu regarder mon MCD ?

                        Si non, ce n'est pas grave t'inquiète ;) !!
                        • Partager sur Facebook
                        • Partager sur Twitter
                          1 avril 2011 à 18:46:29

                          Bonjour,

                          Je voulais savoir si quelqu'un pourrait m'aider dans cette dernière ligne droite ?

                          Si non, dites le moi que j'arrête de faire des UP et que je marque le sujet en résolu.

                          Merci à vous pour toute votre aide dans tous les cas ;) .

                          Cdt,

                          KaNa.
                          • Partager sur Facebook
                          • Partager sur Twitter
                            26 avril 2011 à 11:47:50

                            Citation : pierreet

                            Je ne sais pas trop ce que tu veux modéliser, pour t'aider il va falloir que tu m'expliques. Qu'est ce qu'un gameplay? un games? quelle est la différence entre matchs et tournaments
                            Je pense qu'en effet il y a une erreur de conception à ce niveau là (je n'avais pas vu ça la première fois). Une ternaire ne peut pas avoir une patte avec une cardinalité maximum à 1. Ce qui confirme l'idée d'une agrégation d'entités.



                            Enfet, je ne m'en sors pas, j'arrive pas à comprendre le problème d'une entité ternaire ayant ces trois pates à 1:1 ... ?
                            • Partager sur Facebook
                            • Partager sur Twitter

                            Aide pour passage du MCD vers script SQL

                            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                            • Editeur
                            • Markdown