IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Merise Discussion :

une donnée à calculer en fonction de quelques critères doit -elle être enregistrée dans quelle entité??


Sujet :

Merise

  1. #1
    Membre du Club
    Femme Profil pro
    futur développeur
    Inscrit en
    Janvier 2010
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Maroc

    Informations professionnelles :
    Activité : futur développeur

    Informations forums :
    Inscription : Janvier 2010
    Messages : 135
    Points : 48
    Points
    48
    Par défaut une donnée à calculer en fonction de quelques critères doit -elle être enregistrée dans quelle entité??
    Bonjour,
    j'ai une table MISSION(id_mission, destination, moyen_transport, date_depart, date_retour, num_ordre, # id_employe, date_ordre_mission, objet).
    cette table va enregistrer les missions ainsi que leurs numéros d'ordre.

    après avoir effectué la mission, l'employé doit mentionner l'heure de depart et l'heure de retour afin de calculer l’indemnité pour chaque entrée de la table MISSION, cette indemnité est en fonction de nombre_jour(=date_retour-départ), d'un taux de base(qui est en relation avec le grade,echelle,echellon, indice de l’intéressé).

    je dois au final afficher la valeur de l'indemnité pour une mission donnée, ainsi que l'heure de départ et l'heure de retour et le taux de base appliqué pour calculer l'indemnité.

    est ce que j'enregistre dans la table MISSION:
    la valeur de l'indemnité et le taux de base appliqué.
    ces 2données seront vide quand on enregistre une entré dans la table MISSION, mais après avoir reçu une fiche de l’intéressé précisant l'heure de départ et l'heure d'arrivée , je fais un UPDATE sur la mission qui a un tel num_ordre. c'est ce numéro qui va identifier une mission des autres.

    pourriez vous m'aider s'il vous plait?

    merci

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    est ce que j'enregistre dans la table MISSION:
    la valeur de l'indemnité et le taux de base appliqué.
    ces 2données seront vide quand on enregistre une entré dans la table MISSION, mais après avoir reçu une fiche de l’intéressé précisant l'heure de départ et l'heure d'arrivée , je fais un UPDATE sur la mission qui a un tel num_ordre. c'est ce numéro qui va identifier une mission des autres.
    fsmrel tire à vue sur le bonhomme NULL donc il préconiserait de séparer l'indemnité de la mission, selon l'association suivante :
    mission -0,1----avoir----(1,1)- indemnite

    Quelles propriétés mettre dans l'entité type "indemnite" ?

    Si j'ai bien compris, l'indemnité se calcule en fonction d'une heure de départ, d'une heure de retour et d'un taux de base. L'heure de départ et l'heure de retour sont des propriétés inhérentes à la mission mais n'existant qu'une fois qu'on en vient à calculer l'indemnité après que la mission soit terminée. Il ne faut donc pas, toujours pour éviter de voir revenir le bonhomme NULL, mettre ces propriétés dans l'entité type "mission" mais dans l'entité type "indemnite".
    Quant au taux de base, j'imagine que celui-ci peut évoluer au cours du temps mais qu'il reste fixe pendant une certaine période. Je préconiserais d'externaliser les taux dans une autre entité type et de l'associer à "indemnite" :
    mission -0,1----avoir----(1,1)- indemnite -1,1----appliquer----0,n- taux

    Les tables qui découlent de tout ça :
    mission (id_mission, destination, moyen_transport, num_ordre, # id_employe, date_ordre_mission, objet)
    taux (tx_id, tx_date_début, tx_montant)
    indemnite (idm_id_mission, idm_id_taux, idm_heure_depart, idm_heure_retour)

    J'ai laissé dans la table "mission" les colonnes que tu avais indiquées, sauf les dates de départ et de retour, mais je trouve que tu devrais aussi externaliser le moyen de transport, voire la destination, qui sont des données répétitives sur plusieurs missions.

  3. #3
    Membre du Club
    Femme Profil pro
    futur développeur
    Inscrit en
    Janvier 2010
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Maroc

    Informations professionnelles :
    Activité : futur développeur

    Informations forums :
    Inscription : Janvier 2010
    Messages : 135
    Points : 48
    Points
    48
    Par défaut
    que vous êtes aimable monsieur CinePhil !

    j'ai bien compris les relations entre ces 3 entités:mission, indemnité et taux.

    pour l'entité indemnité elle va contenir 2clés étrangères: # id_mission et
    # id_taux.

    et pour les 2 propriétés date_debut et date_retour, est ce que je peux les mettre dans l'entité mission, parce qu'elles doivent être figuré dans un imprimé.

    pour le calcul de l'indemnité, j'aurais besoin de taux qui, à son tour, est déterminé selon la situation de l'interessé, c'est à dire, pour chaque grade x echelle x et echelon x et indice x, on a un taux.
    et cette indemnité depend aussi de nombre de jours((=date_retour-date_depart)+1 ) donc obligé d'enregistrer date_debut et date_retour dans Mission.

    et l'entité taux depend de grade,echelle, indice.
    est ce que je dois la lier à ces dernières entités.
    sachant que pour 5situations (de grade, echelle, echelon, indice) on a 5taux.

    comment exprimer ceci?


    merci

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    et pour les 2 propriétés date_debut et date_retour, est ce que je peux les mettre dans l'entité mission, parce qu'elles doivent être figurées dans un imprimé.

    ...

    après avoir effectué la mission, l'employé doit mentionner l'heure de depart et l'heure de retour afin de calculer l’indemnité
    Est-ce que date_debut et date_retour sont des propriétés différentes de l'heure de départ et de l'heure de retour ? Dans mon schéma, j'avais compris qu'il s'agissait de la même chose mais si par exemple quand on crée la mission à faire on indique la date de départ et celle de retour prévues et que lorsque la mission est effectuée on précise la date et l'heure réelles de départ et de retour, on peut avoir les deux informations en BDD : les date prévues dans l'entité type mission et les dates et heures réelles dans l'entité type indemnité.

    Ensuite, le fait que ces dates doivent figurer sur un imprimé n'a pas d'influence sur le modèle de données car on doit toujours pouvoir interroger la BDD pour obtenir les informations souhaitées.

    pour le calcul de l'indemnité, j'aurais besoin de taux qui, à son tour, est déterminé selon la situation de l'interessé, c'est à dire, pour chaque grade x echelle x et echelon x et indice x, on a un taux.

    ...

    et l'entité taux depend de grade,echelle, indice.
    est ce que je dois la lier à ces dernières entités.
    sachant que pour 5situations (de grade, echelle, echelon, indice) on a 5taux.
    Oui, si le taux dépend d'autres éléments externes, il faut associer l'entité type taux aux entités types externe. Ceci n'empêchant pas les taux de varier dans le temps pour un même ensemble {grade,echelle, indice} donc il faut quand même une entité type taux pour enregistrer ces variations dans le temps, le calcul de l'indemnité sur des missions passées risquant sinon de ne pas être juste.

    Bon courage pour la suite !

  5. #5
    Membre du Club
    Femme Profil pro
    futur développeur
    Inscrit en
    Janvier 2010
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Maroc

    Informations professionnelles :
    Activité : futur développeur

    Informations forums :
    Inscription : Janvier 2010
    Messages : 135
    Points : 48
    Points
    48
    Par défaut
    Bonjour CinePhil,

    voila, ce que j'ai conçu:

    employe(0,n)<-----se_charger------->(1,1)mission

    mission(1,1)<------ avoir ----------> (1,1)indemnite

    indemnite(1,1)<--------appliquer-------->(1,n)Taux_de_base

    Taux_de_base(1,n)<------correspondre---->(1,1)triple_echelle_echelon_indice



    mission(id_mission, destination, date_D_prevue, date_R_prevu, objet, nbre_jours, #id_employe)

    indemnite(id_indemnite, date_D_reelle, date_R_reelle, heure_D_reelle, heure_R_reelle, nbre_taux, # id_taux_de_base)

    taux_de_base_applique(id_taux, valeur1_taux, valeur2_taux)

    triple_echelle_echelon,indice(id_triple, num_echelle, num_echelon, num_indice, #id_taux)


    les étapes:

    un employé est chargé d'une mission
    on lui donne un ordre de mission indiquant les dates: D et R, la destination, l'objet
    la mission est faite, on concoit une fiche qui indique la somme de l'indemnite offerte pour la mission, cette fiche
    indique le taux de base appliqué pour calculer la somme, le nbre de taux, l'heure depart et d'arrivée,et la destination.
    ce taux est relatif à la situation de l'employe, c'est à dire pour chaque tripe(echelle, echelon, indice) on a
    un taux bien determiné.
    pour cela on vérifie la situation de cet employe qui est enregistrée dans l'entite situation_prof(id_situation,
    #id_employe, #id_grade, #id_echelle, #id_echelon, #id_indice)

    si son echelle,echelle, indice correspond à un triple de l'entité triple_echelle_echelon_indice, on aura la valeur de
    taux de base appliqué (=valeur1 si nbre_jour de la mission<=15j et =valeur2 si nbre_jours de la mission>=16j)

    donc on peut calculer donc l'indemnite on fonction de taux de base et le nbre de taux.

    tout me semble bien ! espérant!

    que vous en dites CinePhil?
    merci

  6. #6
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par wikiele Voir le message
    voila, ce que j'ai conçu:

    employe(0,n)<-----se_charger------->(1,1)mission
    Ceci veut dire que l'employé est obligatoirement connu lors de l'enregistrement de la mission, ce qui semble correspondre à ce que vous écrivez plus loin :
    un employé est chargé d'une mission
    on lui donne un ordre de mission indiquant les dates: D et R, la destination, l'objet
    mission(1,1)<------ avoir ----------> (1,1)indemnite
    Ici par contre, il y a une erreur de cardinalités puisque l'indemnité n'est calculée qu'après exécution de la mission. Il faudrait plutôt ceci :
    mission(0,1)<------ avoir ----------> (1,1)indemnite


    indemnite(1,1)<--------appliquer-------->(1,n)Taux_de_base
    Je mettrais plutôt 0,n du côté du taux de base.

    Taux_de_base(1,n)<------correspondre---->(1,1)triple_echelle_echelon_indice
    Plutôt qu'une entité "triple_echelle_echelon_indice", j'aurais plutôt créé trois entités "echelle", "echelon" et "indice", à moins que la hauteur de l'indice dépende de l'échelon qui dépend de l'échelle. Ça me rappelle quelque chose d'ailleurs ça... ne serait-ce pas vous qui aviez déjà posté une discussion à ce sujet ?

    mission(id_mission, destination, date_D_prevue, date_R_prevu, objet, nbre_jours, #id_employe)
    À la limite, le nombre de jours est calculable mais il faut tenir compte des jours fériés, des week-ends...

    indemnite(id_indemnite, date_D_reelle, date_R_reelle, heure_D_reelle, heure_R_reelle, nbre_taux, # id_taux_de_base)
    Il manque la clé étrangère référençant la mission.
    J'aurais mis un simple date_heure_depart et date_heure_retour plutôt que 4 colonnes.
    Et puisque l'indemnité dépend directement de la mission, on pourrait identifier relativement l'indemnité à la mission, si une mission n'a bien spur toujours qu'un seul employé et une seule indemnité. Dans ce cas, je mettrais directement la clé étrangère référençant la mission en tant que clé primaire.

    taux_de_base_applique(id_taux, valeur1_taux, valeur2_taux)
    ...
    (=valeur1 si nbre_jour de la mission<=15j et =valeur2 si nbre_jours de la mission>=16j)
    Autant appeler les colonnes "valeur_inf_16_jours" et "valeur_sup_egal_16_jours", ce sera plus clair.

    triple_echelle_echelon,indice(id_triple, num_echelle, num_echelon, num_indice, #id_taux)
    Admettons.


    Ça me semble cohérent dans l'ensemble.

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/12/2014, 17h01
  2. Déplacer une ligne dans une autre feuille en fonction d'un critère
    Par moi244 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/10/2011, 15h30
  3. Réponses: 7
    Dernier message: 08/06/2011, 16h49
  4. [MySQL] Récupérer des données trier en fonction de deux critères
    Par student_php dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 27/10/2010, 15h46
  5. Réponses: 2
    Dernier message: 27/06/2010, 09h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo