Partage
  • Partager sur Facebook
  • Partager sur Twitter

Aide pour la conception d'une base de données

    2 mai 2022 à 11:59:40

    Bonjour à tous et à toutes,

    Je suis actuellement en stage et je dois développer une application Web reliée à une base de données. Je suis le seul développeur de l'entreprise c'est pourquoi je dois me former tout seul. Je construit la base de données mais je bloque. Ci-dessous je vous ai fait un énoncé pour comprendre comment doit fonctionner la base de données et les liens entre chaque objet.

    La base de données doit relier des opérateurs, des éléments assemblés sur une chaîne de productions et des défauts liés à des problèmes mineurs (rivêt mal frappé, impact sur une tôle, etc…).

    Un opérateur est défini par son nom, son prénom, son mail, sa société, les programmes et les postes sur lequel il travaille et son métier. Les opérateurs doivent pouvoir être différenciés par leur métier.

    4 métiers existent, compagnon, qualiticien, agent de maîtrise et manager.

    Si l’opérateur est un qualiticien, un numéro de contrôle (digit) lui est attribué, par exemple le premier qualiticien à le numéro 1, le second le 2, etc…

    Un programme est défini par son nom, ses postes, ses imputations et ses affectations.

    Un poste est défini par un nom, ses zones, côtés et typologies.

    Un élément est défini par un numéro incrémental et par le programme sur lequel il est créé.

    Un défaut est défini par un numéro (le numéro reprend le digit du qualiticien ainsi que le nombre de défaut qu'il a créé sur l'élément par exemple pour le qualiticien avec le numéro de contrôle (digit) 1, le numéro du premier défaut sera 101 (digit 1 + défaut 01), le second 102, etc...)

    Le défaut est aussi défini par l’élément sur lequel il a été trouvé, sa typologie, sa localisation (le poste, zones sur l’élément, le côté, etc..), son type, sa quantité, une description, une date de constat, le nom du qualiticien qui a déclaré le défaut, une date de rectification du défaut, le nom du compagnon qui a rectifié le défaut, une date de validation du défaut, le nom du qualiticien qui a validé le défaut et une observation.

    Un qualiticien peut créer n défaut

    Un défaut appartient à un et un seul élément et un et un seul qualiticien

    Un élément appartient à un et un seul programme

    Un programme peut posséder plusieurs élément

    Un opérateur peut posséder n programme et un programme n opérateurs

    J'espère que c'est clair mais je peux reformuler.

    Merci à vous

    Abakus

    -
    Edité par Abakus 2 mai 2022 à 12:22:05

    • Partager sur Facebook
    • Partager sur Twitter
      2 mai 2022 à 13:16:13

      Bonjour,

      As-tu déjà ébauché le MCD ou non ?

      Une première approche (faite avec MoCoDo) serait :

      Ce modèle n'inclue pas toutes les entités que tu as évoquées, mais seulement les principales.

      -
      Edité par Benzouye 2 mai 2022 à 13:18:39

      • Partager sur Facebook
      • Partager sur Twitter
      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
        2 mai 2022 à 14:20:55

        Merci Benzouye pour votre réponse.

        Je suis en train de le faire, mais je bloque à certains endroit car je n'arrive pas à comprendre plusieurs points.

        Déjà je n'arrive pas à modéliser l'héritage des métiers. Dois-je passer par une table métier puis descendre sur 4 tables différentes (qualiticien, compagnon, agent de maîtrise et manager) ou alors puis-je directement relier ces tables à la table operateur avec id_operateur.

        De plus, dans ma table element, il me faut stocker le numéro de l'élement qui sera incrémental, je dois avoir par exemple un element n°1 pour le programme 1 et un element n°1 pour le programme 2. Comment je fais pour relier ce numéro incrémental à mon défaut ?

        J'ai fais ça comme diagramme, comment puis-je vérifier que c'est juste ?

        -
        Edité par Abakus 2 mai 2022 à 15:35:14

        • Partager sur Facebook
        • Partager sur Twitter
          2 mai 2022 à 16:48:29

          MoCoDo ne permet pas de modéliser l'héritage. Pour faire des MCD plus élaboré je te conseille l'excellent Looping.

          Par contre, dans ton contexte je ne suis pas sûr que ce soit nécessaire de faire de l'héritage.

          Dans ma proposition une table métier, liée à la table opérateur (que l'on pourrait nommée "personne" ou "employé"), et un simple champ num_controle permettant de saisir le numéro de contrôleur qualité le cas échéant ...

          Ce sera beaucoup plus léger à gérer que l'héritage ...

          Sinon ton modèle proposé me paraît plutôt bien ...

          • Partager sur Facebook
          • Partager sur Twitter
          Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
            3 mai 2022 à 8:11:37

            D'accord, si je comprend bien, en gros si l'id métier est différent de celui d'un qualiticien, le num_controle est null ? Mais est-ce que tu pourrais m'expliquer comment on modélise l'héritage quand même stp parceque ça m'énerve de ne pas le comprendre, merci.
            • Partager sur Facebook
            • Partager sur Twitter
              3 mai 2022 à 12:01:34

              Abakus a écrit:

              D'accord, si je comprend bien, en gros si l'id métier est différent de celui d'un qualiticien, le num_controle est null ?

              Oui, c'est ça.

              Abakus a écrit:

              comment on modélise l'héritage

              Alors un lien complet pour cela : https://sqlpro.developpez.com/cours/modelisation/heritage/

              • Partager sur Facebook
              • Partager sur Twitter
              Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
                3 mai 2022 à 14:52:21

                Merci pour toutes tes réponses ! Dernière question, je veux mettre le nom du qualiticien qui a déclaré la retouche dans la table des retouches, est-ce qu'il faut passer le nom d'un utilisateur en clé primaire pour cela ?
                • Partager sur Facebook
                • Partager sur Twitter
                  3 mai 2022 à 15:06:16

                  Dans ton modèle la relation "est rectifié" assure ce rôle ... Donc dans la table défaut tu auras une clé étrangère id_utilisateur représentant l'utilisateur qui a rectifié le défaut.

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

                  Aide pour la conception d'une base de données

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  • Editeur
                  • Markdown