Partage
  • Partager sur Facebook
  • Partager sur Twitter

Base de donnée film et série

    13 novembre 2020 à 19:28:53

    Bonjour/Bonsoir à tous,

    j'ai besoin de votre aide car je dois faire une base de donné pour mes études j'ai choisi le sujet film et série. J'ai donc construis mes tables 

    FILM

    SERIE

    GENRE

    Personne(vie réelle acteur réalisateur...) 

    EPISODE

    SAISON

    Mon problème c'est que les personne de la vie réelle peuvent avoir plusieurs rôle comme Acteur et réalisateur je pense notamment à Clint Eastwood qui est les deux donc comment je peux faire pour pas avoir un doublon de Clint Eastwood en acteur et réalisateur.

     Pour l'instant j'ai mis plusieurs champs acteurs et un champ réalisateur dans ma table de film mais j'aimerai savoir si c'est possible de faire plus simple mais sans doublon de Clint Eastwood.

    Merci de votre aide si vous avez besoin d'une image de mon diagramme EER dite le moi.

    • Partager sur Facebook
    • Partager sur Twitter
      14 novembre 2020 à 8:12:27

      Bonjour, 

      La bonne facon de faire serait :  

      Rajouter une table rôle et faire une association 1N/1N entre personne et Rôle : 

      1 personne peut avoir 1 ou plusieurs rôles. Et 1 role peut appartenir a 1 ou plusieurs personnes. 

      Exemple 

      Personne (id_personne, nom, vie_reelle) 

      Personne_role(id_personne, id rôle) 

      Role(id_role, job)

      Bon après dans la Table personne_role tu aura quand même 2 fois id_personne si elle est acteur + realisateur. 

      Sinon le plus simple (si on oublie tout ce qui est intégrite, évolutivité, maintenabilité de la table ) serait de rajouter une colonne noms et de remplacer les colonnes acteur, realisateur par job et fusionner les metier en et creer un metier (realisateur_acteur)

      Sinon j'ai pas trop compris la colonne vie_reelle

      -
      Edité par DeveloSt 14 novembre 2020 à 8:37:05

      • Partager sur Facebook
      • Partager sur Twitter

      Site Internet : https://devst.go.yj.fr

        14 novembre 2020 à 10:54:28

        Bonjour,

        L'idéal serait même une relation ternaire entre rôle, film et personne.

        Ainsi tu peux modéliser pour chaque film le rôle de chaque personne, y compris le fait qu'une même personne puisse avoir plusieurs rôle pour un même film.

        • Partager sur Facebook
        • Partager sur Twitter
        Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
          14 novembre 2020 à 19:19:03

          Voici mes tables et les champs associé.

          Je n'ai pas trop compris vos réponses.

          Develost pourquoi créée une table personne rôle et rôle 

          et Benzouye peut tu m'expliqué un peu plus ta solution ou me mettre un lien sur un tuto qui explique un peu plus la solution.

          Je vous remerci tout les deux de prendre du temps pour m'aider. 

          -
          Edité par fredecoyau 14 novembre 2020 à 19:25:22

          • Partager sur Facebook
          • Partager sur Twitter
            14 novembre 2020 à 20:34:46

            En fait il faudrait éviter d'avoir acteur1, acteur2, acteurn... En colonne dans une table. 

            (Désolé j'ai pas de pc actuellement pour faire le mcd) 

            J'avais pas regardé l'ensemble de la base de données avant. 

            ( Si dans un film une personne peut être acteur et dans un autre film realisateur)

            Il faudrait se tourner vers la solution de Benzouye : 

            Film(idFilm, titre, annee, synopsi)

            Personne(idPersonne, noms, dateNaisance)

            Job(idJob, metier)

            Film_Personne_Job(idFilm, idPersonne, idJob)

            D'ailleurs comment reconnaître quand il faut utiliser une relation ternaire ? (Malgré que je vois bien l'utilité ici) 

            • Partager sur Facebook
            • Partager sur Twitter

            Site Internet : https://devst.go.yj.fr

              14 novembre 2020 à 23:27:32

              Quand tu commences à numéroter les colonnes dans une table c'est qu'il y a un problème de conception ...

              Je te conseille la lecture du doc. "Conception BDD" via ma signature.

              La table personne liste toutes les personnes possibles.

              La table film liste tous les films possibles.

              La table metier liste tous les métiers possibles (auteur, réalisateur, scénariste, musique, casting, etc.).

              La table participation relie une personne, un film et un métier. La colonne details permet ici de stocker une info relative au trio (nom du rôle, ou précision sur la participation par exemple).

              DeveloSt a écrit:

              comment reconnaître quand il faut utiliser une relation ternaire ?

              Simplement quand tu une relation est définie entre 3 entités en même temps ...

              -
              Edité par Benzouye 14 novembre 2020 à 23:28:37

              • Partager sur Facebook
              • Partager sur Twitter
              Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
                15 novembre 2020 à 11:09:58

                Bonjour à vous deux,

                Je vous remercie de votre aide je vais essayer de faire ta solution benzouye et lire Conception BDD de ta signature.

                Es tu sur qu'il n'y aura pas de doublon du coup ? genre pour le même le film le réalisateur peut être un acteur également. 

                J'aurais surement encore besoin d'aide dans un futur proche.

                -
                Edité par fredecoyau 15 novembre 2020 à 11:40:42

                • Partager sur Facebook
                • Partager sur Twitter
                  15 novembre 2020 à 18:53:35

                  Si le réalisateur est aussi acteur il y aura 2 enregistrements dans la table participation. Exemple :

                  Million dollar baby/Clint Eastwood/Réalisateur

                  Million dollar baby/Clint Eastwood/Acteur

                  Bien évidemment avec les id correspondants.

                  • Partager sur Facebook
                  • Partager sur Twitter
                  Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
                    18 novembre 2020 à 11:41:47

                    fusionne peut-être aussi les tables films et séries (vu qu'ils contiennent les mêmes infos) et rajoute une colonne pour indiquer si série ou film ou documentaire ou ... (cette colonne pourrait aussi être une autre table d'ailleurs).
                    • Partager sur Facebook
                    • Partager sur Twitter
                      18 novembre 2020 à 11:53:05

                      @umfred

                      J'avais pensé à cela mais comment gérer le fait qu'une sérier possède plusieurs saison et plusieurs épisode par rapport à un film ?

                      Tu met qu'un film c'est 1 saison et 1 épisode ?

                      ou il y a un moyen plus simple ?  

                      -
                      Edité par DeveloSt 18 novembre 2020 à 11:53:52

                      • Partager sur Facebook
                      • Partager sur Twitter

                      Site Internet : https://devst.go.yj.fr

                        18 novembre 2020 à 11:55:19

                        un film c'est une vidéo qui n'a pas de saison peut-être ?
                        • Partager sur Facebook
                        • Partager sur Twitter
                          18 novembre 2020 à 12:01:10

                          Donc laisser la colonne en null sur id_saison ? pour film

                          -
                          Edité par DeveloSt 18 novembre 2020 à 12:05:20

                          • Partager sur Facebook
                          • Partager sur Twitter

                          Site Internet : https://devst.go.yj.fr

                            18 novembre 2020 à 13:33:26

                            Si l'on voulait être rigoureux sur la gestion des séries, il faudrait utiliser de l'héritage.

                            Une table mère "média" avec les infos communes aux films et aux séries, et deux tables "filles" film et série chacune avec ses propres attributs.

                            La table saison serait liée à la table fille.

                            Un peu de lecture sur l'héritage en SQL : https://sqlpro.developpez.com/cours/modelisation/heritage/

                            -
                            Edité par Benzouye 18 novembre 2020 à 13:34:18

                            • Partager sur Facebook
                            • Partager sur Twitter
                            Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
                              18 novembre 2020 à 14:06:34

                              Benzouye a écrit:

                              Une table mère "média" avec les infos communes aux films et aux séries, et deux tables "filles" film et série chacune avec ses propres attributs.

                              Si on fait comme cela, ce n'est plus évolutif (si par exemple on n'a oublié qu'il y avait une table fille documentaire ou tout simplement rajouter une table fille supplémentaire) ? 

                              Edit : ou alors créer une nouvelle table, les colonnes, contraintes d'intégrités a partir d'un formulaire de saisie c'est possible ? 

                              Ou alors utiliser du no-SQL ? (comme j'ai pris de l'avance sur le planning dans le projet, j'essaye de me former sur d'autre chose)  

                              Utiliser un language de structuration des données xml, json et créer un fichier par média/film,serie,...

                              J'ai eu l'occasion d'utiliser 2-3 fois pour récupérer des informations ou insérer des données mais jamais de créer une structure ou d'utiliser une BDD no-SQL...  peut être à l'avenir j'aurai l'occasion d'approfondir se côté. 

                              -
                              Edité par DeveloSt 18 novembre 2020 à 15:31:18

                              • Partager sur Facebook
                              • Partager sur Twitter

                              Site Internet : https://devst.go.yj.fr

                                18 novembre 2020 à 18:14:05

                                DeveloSt a écrit:

                                Si on fait comme cela, ce n'est plus évolutif (si par exemple on n'a oublié qu'il y avait une table fille documentaire

                                Oui, cet "oubli" implique de modifier le modèle pour ajouter une table fille "Documentaire", mais vu l'ampleur de l'évolution induite cela ne me choque pas ... car de toute façon le code applicatif aussi sera à modifier pour ajouter les fonctionnalités propres à ce nouveau type ...

                                DeveloSt a écrit:

                                ou alors créer une nouvelle table, les colonnes, contraintes d'intégrités a partir d'un formulaire de saisie c'est possible ? 

                                C'est possible en effet, mais, en tenant compte de ma remarque précédente ce serait accessoire ... Si tu dois changer le code applicatif pour intégrer une nouvelle fonctionnalité (gestion de documentaires) modifier la base de données ira avec ...

                                DeveloSt a écrit:

                                Ou alors utiliser du no-SQL ?

                                Le choix de l'un (SQL) ou l'autre (NoSQL) portera sur d'autres critères ... Notamment sur l'importance de l'intégrité référentielle (gérée en SQL et pas en NoSQL). Dans ce projet, le besoin d'intégrité référentielle me semble fort, donc SQL ...

                                DeveloSt a écrit:

                                Utiliser un language de structuration des données xml, json et créer un fichier par média/film,serie,...

                                C'est possible en effet, mais, en tenant compte de ma remarque précédente ce serait accessoire ... Si tu dois changer le code applicatif pour intégrer une nouvelle fonctionnalité (gestion de documentaires) modifier la base de données ira avec ... qu'elle soit SQL, ou fichiers XML, JSON, etc., sauf que SQL vient quand même avec son lot de fonctionnalités bien pertinentes dans les projets applicatifs (ACID).

                                Bon je m'arrête car on s'éloigne franchement de la question de départ, sur laquelle @fredcoyau n'est plus intervenu ...

                                • Partager sur Facebook
                                • Partager sur Twitter
                                Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
                                  11 janvier 2021 à 21:10:10

                                  Bonsoir à tous je vois que vous avez plein de solution à me proposer j'aurai du me tenir plus à jour sur le sujet j'ai fini de rentrer les infos que je voulais dans ma BDD même si j'ai bien compris que c'est pas la meilleure façon d'après tout vos messages il y a des chance pour que je la fasse évoluer petit à petit donc je reviendrai surement vous faire un petit coucou pour vous embêter car honnêtement j'ai pas vu en cours ce qu'était une table mère et fille.

                                  la pour l'instant je dois me concentre sur le site internet c'est pas une mince affaire encore ce truc la surtout avec les cours bizarre qu'on a cause du Coronavirus.

                                  Je vous dit encore un grand merci pour votre aide et je reviens au plus vite pour mettre à niveau ma BDD.

                                  Bonne soirée Fred

                                  • Partager sur Facebook
                                  • Partager sur Twitter

                                  Base de donnée film et série

                                  × 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