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
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.
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
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é):
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 ...
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
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
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 ?
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 ?
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 ...
× 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.
Site Internet : https://devst.go.yj.fr
Site Internet : https://devst.go.yj.fr
Site Internet : https://devst.go.yj.fr
Site Internet : https://devst.go.yj.fr
Site Internet : https://devst.go.yj.fr