Précédent   Forum des professionnels en informatique > Général Développement > Conception > Méthodes > Merise
Merise Systémique, Cycle projet (V, W), flux, traitements ... Avant de poster -> F.A.Q Merise
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/09/2011, 13h07   #1
Futur Membre du Club
 
Femme
futur développeur
Inscription : janvier 2010
Messages : 135
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 22
Localisation : Maroc

Informations professionnelles :
Activité : futur développeur

Informations forums :
Inscription : janvier 2010
Messages : 135
Points : 15
Points : 15
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
wikiele est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2011, 21h33   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 028
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
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 : 11 028
Points : 18 321
Points : 18 321
Envoyer un message via MSN à CinePhil
Citation:
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.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2011, 02h47   #3
Futur Membre du Club
 
Femme
futur développeur
Inscription : janvier 2010
Messages : 135
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 22
Localisation : Maroc

Informations professionnelles :
Activité : futur développeur

Informations forums :
Inscription : janvier 2010
Messages : 135
Points : 15
Points : 15
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
wikiele est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2011, 09h41   #4
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 028
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
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 : 11 028
Points : 18 321
Points : 18 321
Envoyer un message via MSN à CinePhil
Citation:
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.

Citation:
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 !
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2011, 13h40   #5
Futur Membre du Club
 
Femme
futur développeur
Inscription : janvier 2010
Messages : 135
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 22
Localisation : Maroc

Informations professionnelles :
Activité : futur développeur

Informations forums :
Inscription : janvier 2010
Messages : 135
Points : 15
Points : 15
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
wikiele est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2011, 13h58   #6
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 028
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
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 : 11 028
Points : 18 321
Points : 18 321
Envoyer un message via MSN à CinePhil
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 :
Citation:
un employé est chargé d'une mission
on lui donne un ordre de mission indiquant les dates: D et R, la destination, l'objet
Citation:
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


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

Citation:
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 ?

Citation:
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...

Citation:
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.

Citation:
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.

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


Ça me semble cohérent dans l'ensemble.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h59.


 
 
 
 
Partenaires

Hébergement Web