Partage
  • Partager sur Facebook
  • Partager sur Twitter

Choix fonctionnement structure table

    29 avril 2021 à 9:59:51

    Bonjour, 

    Pour l'instant j'ai 3 Tables TypeEvenement et TypeEvenement_Secteur et Secteur (Relation NN). 

    Ma Table TypeEvenement contient 3 colonnes (code, désignation, alea).

    Il peut y avoir des codes qui commence par P ou T et des alea HPoste ou Poste 

    Mon calculs est actuellement le suivant : P - T(HPoste) = Resultat1 - T(Poste) = Resultat2   

    Jusqu'ici tous fonctionne bien, 

    La ou ça se complique c'est l'apparition de ma table Secteur.

    Ma table Secteur contient 2 colonnes (id_secteur, nomSecteur)

    Au départ le fonctionnement était exactement le même pour tous les secteurs.

    Mais une contrainte supplémentaire est apparu dans le secteur B il a des personnes ou des machines,

    On veut garder pour le calcul uniquement le T de la machine dans le secteur B

    Solution A 

    Je pensai à faire du bricolage et mettre un code PersonneT_A, PersonneT_B, MachineT_B pour dire c'est une personne dans le secteur B et tu ne prend pas en compte dans le calcul... 

    Est ce que ça peut être pertinent de fonctionner comme cela ?  j'ai surtout beaucoup moins de modification à faire :euh:

    Solution B 

    Sinon je pense que le mieux reste de rajouter une colonne a la table TypeEvenement qui me permet de dire a qui appartiens le code T. 

    Je vous remercie pour vos conseils

    • Partager sur Facebook
    • Partager sur Twitter

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

      29 avril 2021 à 10:36:18

      Bonjour,

      Un secteur est lié à plusieurs types, et un type est lié à plusieurs secteurs.

      A quel moment effectues-tu ton calcul, et avec quelles données ? Il doit y avoir une autre table en jeu non ?

      • Partager sur Facebook
      • Partager sur Twitter
      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
        29 avril 2021 à 11:37:31

        Benzouye a écrit:

        Un secteur est lié à plusieurs types, et un type est lié à plusieurs secteurs.

        Oui, actuellement c'est comme cela... 

        Si tu as un même code dans la table type pour 2 secteurs et que tu change l'alea Hposte pour Poste, ca le fait pour les 2 secteurs. 

        C'était un fonctionnement qui était correcte, jusqu'à l'apparition des Machines.... 

        Car maintenant tu peux avoir un même code pour l'opérateur et la machine mais avec 2 alea differents 

        Exemple : un même Évènement Nettoyage pour la personne c'est Poste et pour la Machine c'est HPoste 

        Peut-être la meilleure solution serait de créer une table Alea et de rajouter une colonne id_alea dans TypeEvenement_Secteur et en faire une relation ternaire ? Mais dans ce cas il me faut également savoir a qui appartient l'évènement. 

        J'ai l'impression que ca commence à devenir trop confus et que je parts dans tous les sens o_O

        Benzouye a écrit:

        A quel moment effectues-tu ton calcul, et avec quelles données ? Il doit y avoir une autre table en jeu non ?

        Pour le calcul c'est assez compliqué : 

        J'exécute 1 fois le calcul toutes les heures via un event et une procédure stockée et toute les minute via l'application en VB. 

        Il y a une autre table en jeux Evenement (relation 1N..NN) avec la Table TypeEvenement. 

        Pour faire simple

        La table Evenement possède les colonnes suivantes pour effectuer le calcul (Code, Duree) et regroupé par la colonne (id_commande ou id_ligne et personne ou machine) et stocké Heure/Heure dans une table Horrible qui se nomme Horaire :'( (précision, je stocke uniquement résultat1 car je le réutilise pour faire d'autres calculs) 

        Le calcul c'est

        Si secteur A : 

        Duree_P - Duree_T_Hposte = Resultat1 

        Resultat1 - Duree_T_Poste = Resultat2

        Si secteur B

        Duree_P - Duree_T_Hposte_Machine = Resultat1 

        Resultat1 - Duree_T_Poste_Machine = Resultat2

        Actuellement je gérer tous comme si on est dans le secteur A

        J'ai plusieurs solution pour arriver au résultat avec le secteur B, mais j'aimerais essayer de faire quelques chose de propre :) 

        Pour un MCD actuellement j'ai cela (cardinalité inversé): 

        -
        Edité par DeveloSt 29 avril 2021 à 13:53:13

        • Partager sur Facebook
        • Partager sur Twitter

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

          29 avril 2021 à 12:08:50

          DeveloSt a écrit:

          maintenant tu peux avoir un même code pour l'opérateur et la machine mais avec 2 alea differents

          Mais qu'est-ce qui te diras si c'est un homme ou une machine qui est concerné ?

          DeveloSt a écrit:

          La table Evenement possède les colonnes suivantes [...] personne ou machine

          Si je comprends bien c'est ton événement qui précise cela, donc il n'y a pas de problème ... Juste à rajouter dans ta table type une colonne alea_machine en plus, et en fonction de l'événement tu choisis l'une ou l'autre pour faire le calcul ...

          • Partager sur Facebook
          • Partager sur Twitter
          Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
            29 avril 2021 à 13:42:07

            Benzouye a écrit:

            DeveloSt a écrit:

            La table Evenement possède les colonnes suivantes [...] personne ou machine

            Si je comprends bien c'est ton événement qui précise cela, donc il n'y a pas de problème ... Juste à rajouter dans ta table type une colonne alea_machine en plus, et en fonction de l'événement tu choisis l'une ou l'autre pour faire le calcul ...

            Ma table évènement me permet de regrouper par machine ou personne a partir de la colonne SESA mais ne me permet pas de faire la distinction entre les deux. c'est pour cela qu'au départ je pensais créer des codes d'événement MachineT_secteurB... ou PersonneT_secteurB et PersonneT_secteurA pour faire la distinction

            Mais je sais pas si c'est une solution viable ? 



            -
            Edité par DeveloSt 29 avril 2021 à 13:45:38

            • Partager sur Facebook
            • Partager sur Twitter

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

              29 avril 2021 à 13:54:16

              Et comment peux-tu regrouper alors ?

              Que contient SESA qui te permet de la faire ?

              • Partager sur Facebook
              • Partager sur Twitter
              Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
                29 avril 2021 à 14:03:54

                Benzouye a écrit:

                Et comment peux-tu regrouper alors ?

                Que contient SESA qui te permet de la faire ?


                C'est un identifiant personne ou machine d'une autre Table mais il ne me permet pas de faire la distinction car pour les codes T sera toujours l'identifiant de la personne qui a déclaré l'événement, alors que l'évenement peut être sur machine.

                Pour le secteur A il n'y a pas de machine

                Benzouye a écrit:

                Et comment peux-tu regrouper alors ?

                Je peux regrouper les evenement par SESA, mais je ne peux pas dire si l'evenement appartient a une personne ou une machine

                -
                Edité par DeveloSt 29 avril 2021 à 15:04:56

                • Partager sur Facebook
                • Partager sur Twitter

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

                  29 avril 2021 à 15:49:51

                  DeveloSt a écrit:

                  Ma table évènement me permet de regrouper par machine ou personne a partir de la colonne SESA

                  Alors je ne comprends pas cette phrase ...

                  Donc je reprends ma question différemment, qu'est-ce qui te permettrait de savoir si l'on parle d'une machine ou d'une personne ? A quel moment dans ton application l'information est-elle saisie ou déterminée ?

                  • Partager sur Facebook
                  • Partager sur Twitter
                  Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
                    29 avril 2021 à 15:58:36

                    Je suis aller un peu trop vite dans l'explication, 

                    Je peux regrouper le calcul par SESA (qui sont machine ou personne) mais justement le problème c'est que je n'ai pas de moyen de les différencier actuellement, je ne peux pas dire si l'évènement et le sesa appartient à la machine ou a la personne. Une personne peut déclarer un évènement T avec sont SESA pour une machine.

                    Benzouye a écrit:

                    Donc je reprends ma question différemment, qu'est-ce qui te permettrait de savoir si l'on parle d'une machine ou d'une personne ? A quel moment dans ton application l'information est-elle saisie ou déterminée ?

                    Justement c'est la le problème

                    Je cherche justement un moyen de distinguer si l'évènement appartient a la machine ou a la personne. 

                    Est ce que créer des code de déperdition Machine_T_SecteurB et Personne_T_SecteurB c'est judicieux ?

                    Ou est ce que c'est mieux de rajouter une colonne avec qui dit si le code appartiens a la machine ou a la personne ? 

                    Ou faire une relation Ternaire avec la table TypeEvenement_Secteur_Alea Avec des aleas (HPoste, Poste) pour operateur et (Panne, maintenance) pour machine ? 



                    -
                    Edité par DeveloSt 29 avril 2021 à 16:29:49

                    • Partager sur Facebook
                    • Partager sur Twitter

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

                      29 avril 2021 à 16:22:48

                      DeveloSt a écrit:

                      C'est pour cela que je parle de créer des noms de codes Machine_T_Meca et Personne_T_Meca dans le table TypeEvenement

                      Je pense qu'il serait plus judicieux de "simplement" de rajouter une colonne alea_machine dans la table des types, et une colonne flag_machine dans la table des événements (une case à cocher sur le formulaire de saisie de l'événement).

                      L'utilisateur saisie son événement, choisi le type et coche la case "Machine" le cas échéant.

                      Toi côté SQL tu calcules avec l'un ou l'autre des aléas en fonction de la cas à cocher ...

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

                      Choix fonctionnement structure table

                      × 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