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

Schéma Discussion :

Gestion de date [MCD]


Sujet :

Schéma

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2003
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 49
    Points : 29
    Points
    29
    Par défaut Gestion de date
    Salut,

    Dans le cadre d'un projet, je dois gérer les absences des salariés en les répertoriant. Le principe est le suivant:
    J'ai l'ensemble du personnel répertorié dans une entité SALARIE (ID_SAL, NOM_SAL, PREN_SAL, NUM_BAD).
    Les types d'absences disponibles (Congés annuel, ARTT, ...) sont eux répertoriés dans mon entité ABSENCE (CODE_ABS, LIB_ABS).

    Un salarié peut être absent n'importe quand, pour une durée d'un jour ou plus. Chaque absence de ce salarié correspond à un type d'absence qui justifie celle-ci. Ces absences doivent être enregistrées (ceci par salarié) afin de pouvoir les contrôler (par l'administration de l'entreprise).
    Ce qui a pour résultat que la relation entre SALARIE et ABSENCE est multiple il faut donc une relation entre les 2. Cette relation sera modélisée par l'entité HIST_ABS (DATE_ABS). Cette entité recevra donc 2 clef étrangères CODE_ABS et ID_SAL.

    Or, on m'a fait remarquer que ce schéma posserait problème:
    Au niveau de la table absence où l'on m'a conseillé d'utiliser un identifiant totalement artificiel et non une info existante.
    Au niveau de ma relation HIST_ABS qui va semble t il poser problème dans l'enregistrement des absences par salarié (elle ne permettrait pas un historique des absences par salarié). On m'a conseillé de créer une ternaire avec une entité HIST_ABS à part possédant son propre identifiant.

    Je solicite amicalement les conseils avisés de toute personne s'étant déjà frotté au prob .

    Merci d'avance
    Seb
    El Che vive ! His spirit will never die !

  2. #2
    Membre habitué Avatar de ddams
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2002
    Messages : 147
    Points : 148
    Points
    148
    Par défaut Re: [Merise] Gestion de date
    Citation Envoyé par Seb7
    Au niveau de ma relation HIST_ABS qui va semble t il poser problème dans l'enregistrement des absences par salarié (elle ne permettrait pas un historique des absences par salarié). On m'a conseillé de créer une ternaire avec une entité HIST_ABS à part possédant son propre identifiant.
    A mon avis, la solution conseillée est la bonne.
    HIST_ABS(DATE_ABS)

    Ceci dit, cette entité doit exister dans le MCD mais pas dans le MLD : Ta relation aura simplement comme identifiant ID_SAL,CODE_ABS,et DATE_ABS. Une table disposant uniquement de son identifiant est généralement inutile.
    @+ddams

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 113
    Points : 488
    Points
    488
    Par défaut
    A mon avis, il y a confusion entre
    - un type d'absence (le motif statutaire de l'absence) malheureusement intitulé ABSENCE
    - l'absence d'un salarié (de 1 à plusieurs jours, avec un motif) apparamment nommé HIST_ABS dont la modélisation est incertaine
    Cette relation sera modélisée par l'entité HIST_ABS (DATE_ABS).
    Je propose le MCD suivant où ABSENCE est en identification relative / Salarié



    Qui se transforme en MLD


    Quand aux deux remarques faites à Seb, elles me semblent assez discutables...
    Avec le MLD proposé, on gère parfaitement toutes les absences de l'ensemble des salariés conformément à la législation (à un moment donné, on ne peut avoir qu'une absence d'un motif)

    A mon avis, l'essentiel du problème vient de la confusion entre MCD et MLD !
    Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément.
    L'Art poétique - Nicolas Boileau (1636-1711)

  4. #4
    Membre habitué Avatar de ddams
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2002
    Messages : 147
    Points : 148
    Points
    148
    Par défaut
    re,

    Nanci, pourrais-tu stp m'expliquer ce qu'apporte ta solution par rapport à celle proposée. J'ai du mal à saisir en quoi elle serait mauvaise...

    pour rappel, voilà la solution que je proposais :

    MCD


    MPD
    @+ddams

  5. #5
    Membre confirmé

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 113
    Points : 488
    Points
    488
    Par défaut
    La solution d'une ternaire telle que modélisée appelle les remarques suivantes:
    1/ Elle autorise, en l'absence d'un contrainte d'intégrité fonctionnelle, qu'un salarié puisse être asbent à une date pour plusieurs types d'absence; ce qui contraire à l'énoncé. Il aurait éventuellement fallu une CIF Salarié x Début absence --> Type absence qui aurait fait de code type absence une simple clé étrangère dans la table Etre absent, ne participant pas à la clé primaire.


    2/ L'entité DEBUT_D'ABSENCE n'a aucune consistance sémantique; que signifie cet objet de gestion ?

    Dans la solution que je propose, l'entité Absence est concrète, dénombrable, voire matérialisable par une "demande d'absence" déposée par le salarié. Elle correspond tout à fait à un "objet métier" connu.

    Mon "grain de sel": on a trop tendance à raisonner solution logique au niveau conceptuel. L'essentiel, c'est de modéliser des objets du métier (les entités). Plusieurs modélisations conceptuelles peuvent aboutir à une même solution logique, sans etre pour autant équivalentes.
    Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément.
    L'Art poétique - Nicolas Boileau (1636-1711)

  6. #6
    Membre habitué Avatar de ddams
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2002
    Messages : 147
    Points : 148
    Points
    148
    Par défaut
    merci pour ces précisions.
    @+ddams

  7. #7
    Nouveau membre du Club
    Inscrit en
    Avril 2003
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 49
    Points : 29
    Points
    29
    Par défaut
    Salut !

    Veuillez m'excuser pour le temps de réponse (plutôt long ) mais j'étais dans l'incapacité de le faire avant (j'épargne les détails inintéressants). Je vous rassure ceci n'est pas dans mes habitudes, d'ordinaire je suis plutôt du genre à harceler de message pour que l'on s'occupe de moi .
    Enfin, allons y !
    Moi, ce que j'aime sur ce forum, c'est qu'à chaque fois que j'y viens, les réponses sont de "top qualité"
    Nanci a dit:
    - un type d'absence (le motif statutaire de l'absence) malheureusement intitulé ABSENCE
    Oui, c'est une erreur de ma part que je rectifie donc immédiatement, l'entité ABSENCE sera dorénavant TYPE ABSENCE, voilà !
    Je propose le MCD suivant où ABSENCE est en identification relative / Salarié
    Cette solution me parait très bien .
    Avec le MLD proposé, on gère parfaitement toutes les absences de l'ensemble des salariés conformément à la législation (à un moment donné, on ne peut avoir qu'une absence d'un motif)
    Oui tout ça est très bien mais le "à un moment donné, on ne peut avoir qu'une absence d'un motif" m'inquiète un peu
    Il est vrai que j'ai surement mal précisé ce point (voir pas du tout) mais c'est difficile d'expliquer comme ça tous les facteurs, je n'ai pas trop l'habitude
    Je vais essayer d'être clair:
    Un salarié peut être absent un ou plusieurs jours (d'affilé ou pas), là on est d'accord.
    A chaque jour d'absence doit correspondre un type d'absence (en justification), là on est aussi d'accord.
    Sur un même jour où un salarié est absent, il peut cumuler 2 types d'absences différentes, exp: 1/2 journée=Congés annuel + 1/2 journée=ARTT (ceci sur la même journée); là je crois que c'était litigieux.
    Dernière précision qui est un ENORME oubli de ma part, il faut pouvoir gérer deux types d'absences: les absences en heures et celles en jours; du coup il manque quelque chose pour répertorier les heures d'absences.
    A mon avis, l'essentiel du problème vient de la confusion entre MCD et MLD !
    Il est vrai qu'un de mes gros défaut est d'avoir tendance à me projeter dans la programmation, du coup je pense plus MLD que MCD, désolé je vais essayer d'arranger ça.

    La solution d'une ternaire telle que modélisée appelle les remarques suivantes:
    1/ Elle autorise, en l'absence d'un contrainte d'intégrité fonctionnelle, qu'un salarié puisse être asbent à une date pour plusieurs types d'absence; ce qui contraire à l'énoncé
    Les précisions que j'apporte juste au dessus montre bien que l'énoncé souhaite qu'un salarié puisse être asbent à une date pour plusieurs types d'absence, encore pardon
    2/ L'entité DEBUT_D'ABSENCE n'a aucune consistance sémantique; que signifie cet objet de gestion ?
    Là, je saisi pas trop, pourquoi DEBUT_ABSENCE et pas DATE_ABS comme je l'avais mis ? ou alors il faudrait rajouter FIN_ABSENCE (ce qui je crois serait une autre solution).
    Dans la solution que je propose, l'entité Absence est concrète, dénombrable, voire matérialisable par une "demande d'absence" déposée par le salarié. Elle correspond tout à fait à un "objet métier" connu.
    Ceci semble très correct mais avec l'apparition de mes nouvelles précisions (notamment les absences en heures et le double motif), croit qu'une entité Absence est toujours valide ?

    Merci d'avance
    Seb
    El Che vive ! His spirit will never die !

  8. #8
    Membre confirmé

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 113
    Points : 488
    Points
    488
    Par défaut
    Compte tenu de tes remarques, je propose de faire évoluer les modélisations.
    Prenons un exemple: Un salarié souhaite s'absenter une journée avec 1/2 journée de RTT + 1/2 journée de sans solde.
    Règle: si une demande d'absence comporte plusieurs motifs (types), les temps d'absence de chaque motifs sont contigüs, sinon, on dépose plusieurs demandes distinctes
    Deux solutions sont possibles en fonction des choix de gestion.

    1/ Une demande d'absence déposée est obligatirement mono-type.
    Le salarié dépose alors 2 demandes: une pour la matinée en RTT, l'autre pour l'après midi en sans solde.




    2/ Une demande est multi-motifs.
    Le salarié dépose une demande d'absence pour la journée (début-fin) et précise la durée de chaque motif; 1/2 journée en RTT, 1/2 journée en sans solde.



    La durée de l'absence est indiquée dans une unité (jour, heure)

    Dans les 2 cas, je maintiens l'entité Absence qui matérialise bien la demande d'absence déposée par le salarié. Toutefois, compte tenu de la multiplicité de solutions, j'opte pour une identification absolue sous la forme d'un n° chrono d'enregistrement.
    Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément.
    L'Art poétique - Nicolas Boileau (1636-1711)

  9. #9
    Nouveau membre du Club
    Inscrit en
    Avril 2003
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 49
    Points : 29
    Points
    29
    Par défaut
    Ok Nanci, tu as le don pour soulever les bonnes questions .
    Du coup, je suis allé demander une bonne fois pour toute au service concerné comment ils géraient tout ça actuellement. Et ils ont un autre don eux, celui de rajouter des trucs au fur et à mesure suivi de: "Ha, tu le savais pas." , j'adore...
    Bon, allons-y, je t'explique:
    Nouvelle info : un salarié peut déposer 3 types d'absences différentes pour une même journée. Je sais, ça semble incohérent mais ça existe (une fois par an mais il faut le prévoir ), à croire que certain font tout pour pas aller travailler .

    Précision: Il y a des absences en heures, d'autre en jour (ceci par journée) mais au final tout est exploité en heures.
    Exemple: Un salarié prend une journée de congé, cela équivaudra à 7h48 d'absence, ou 7h si il est au 35 h.
    Idem, si un salarié prend une 1/2 journée de ARTT, cela équivaudra à 3h30 d'absence si il est au 35h
    Tout ça pour dire que ces absences sont calquées sur le nombre d'heures théoriques qu'est censé faire l'employé (mais ceci se retrouve grâce à id_salarie qui remonte l'info d'autre entité).

    Si je précise ça c'est pour justifier que ta solution 2 semble correspondre le mieux. Par contre, je crois qu'il faudrait rajouter un champs date à ABSENCE, non ? Sinon l'absence n'est pas daté.

    J'aimerais savoir: le champs durée dans ELEM_ABS stockera le nombre d'heures compris entre les 2 créneaux horaires (date_heure debut et date_heure fin) ?

    La durée de l'absence est indiquée dans une unité (jour, heure)
    Tu parles du champs unité ? Je comprend pas .

    Voilà pour les dernières infos, je pense donc que la solution 2 serait la bonne mais en gérant la date que l'on découperait en type d'absence, qu'en penses-tu?
    El Che vive ! His spirit will never die !

  10. #10
    Nouveau membre du Club
    Inscrit en
    Avril 2003
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 49
    Points : 29
    Points
    29
    Par défaut
    Bon, après réflexion et étude du produit final (j'ai tourné et retourné ça dans tous les sens) je crois que la solution 2 (Une demande est multi-motifs) que tu m'as montrer Nanci est la bonne.

    A part que je remplacerai unité (car je ne sais pas trop quel est son utilité ) par date_abs afin de connaitre le jour de l'absence.

    En revanche, je garde durée afin de stocké le nombre d'heures où la personne sera absente (résultat de la différence entre date_heure fin et date_heure debut).

    Est-ce une bonne solution ?

    Par contre, j'ai un ptit souci au niveau de la gestion d'anomalie.
    En effet, lorsque l'on détecte qu'un employé n'a pas pointé (car mon appli sera relié à une badgeuse) le futur logiciel devra le signaler : "Absence de pointage sur la matinée" ou "sur la journée", selon le cas.
    C'est principalement pour éviter l'apparition d'anomalie alors que la personne a prévenu de son absence que la gestion des ABSENCES est importante. Pour les absences en heures, on ne souhaite pas gérer les anomalies (trop complexe par rapport au théorique) mais on souhaiterait que les anomalie ne soit pas déclarer dans le cas où le personne est absente pour une 1/2 journée ou la journée entière.
    Comment gérer ceci ? Dois-je passer par Durée ou ne faudrait il pas carrément créer deux nouveaux attribus (Booléen) pour empêcher l'apparition d'anomalies le cas échéant ?

    Merci beaucoup d'avance
    Seb
    El Che vive ! His spirit will never die !

  11. #11
    Membre confirmé

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 113
    Points : 488
    Points
    488
    Par défaut
    Désolé pour le silence. Pendant les vacances, je décroche totalement !
    OK pour ton choix sur la solution 2.
    1/ Dans l'Elément d'absence, je suis d'accord pour supprimer unité et durée et les remplacer par date-heure début, date-heure fin (comme ça on peut calculer la durée dans l'unité de temps que l'on veut !)

    2/ Attention, dans une absence même multi-motifs, les Eléments d'absences doivent impérativement être contigüs; sinon, ce sont sont deux absences distinctes

    3/ Je garderais, au niveau Absence, date-heure début et date-heure fin qui indique la période globale de l'absence; c'est certes une redondance avec les périodes élémentaires de l'Elément d'absence mais c'est, à mon avis, une sécurité pour le contrôle de la contrainte 2/... et cela permet également de gérer les anomalies de badgeage car les périodes d'absence déclarées (Absence) sont connues et comparable avec les période de "non-présence" détectées par le pointage
    Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément.
    L'Art poétique - Nicolas Boileau (1636-1711)

  12. #12
    Nouveau membre du Club
    Inscrit en
    Avril 2003
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 49
    Points : 29
    Points
    29
    Par défaut
    Salut Nanci, content de te revoir .
    Désolé pour le silence. Pendant les vacances, je décroche totalement !
    Tu as bien raison, je fais pareil .
    Bon, depuis la dernière fois, les choses ont quelque peu évoluées.
    1/ Dans l'Elément d'absence, je suis d'accord pour supprimer unité et durée et les remplacer par date-heure début, date-heure fin (comme ça on peut calculer la durée dans l'unité de temps que l'on veut !)
    Perso, j'ai gardé Durée afin de stocké le nombre d'heures où la personne sera absente (résultat de la différence entre date_heure fin et date_heure debut). Pour unité, je pense l'utiliser pour établir un code du style:
    J = Absence sur la journée
    AM = Absence sur la matinée (jusqu'à 13 h pour le contrôle des anomalies
    PM = Absence sur l'après-midi (après 13h)
    H = Absence en heures

    Ainsi, au moment de la saisi des absences, l'utilisateur pourra cocher soit la case 'Jour' , soit 'AM', soit 'PM', soit 'H'; et dans ce cas il aura la possibilité de choisir l'heure de début et l'heure de fin. Le truc, c'est que je sais pas encore si je place cette attribut dans mon entité ABSENCE ou dans l'association DE...
    2/ Attention, dans une absence même multi-motifs, les Eléments d'absences doivent impérativement être contigüs; sinon, ce sont sont deux absences distinctes
    Heuuu... Là tu m'interpelles, car dans une même journée un salarié peut prendre une demi journée de RTT et de une absence pour Maladie de 16h à 17h (c'est un ex ). Les absences dans ce cas ne sont donc pas contigues, comment gérer ça alors?
    3/ Je garderais, au niveau Absence, date-heure début et date-heure fin qui indique la période globale de l'absence;
    Dans ABSENCE ok mais pour l'association DE j'ai pas trop compris ce que pourrait apporter de créer date-heure début et date-heure fin .

    Voilà, que penses-tu de tout ça? Merci pour ton aide.
    El Che vive ! His spirit will never die !

  13. #13
    Membre confirmé

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 113
    Points : 488
    Points
    488
    Par défaut
    OK avec toi sur les deux premiers points.

    > Concernant la contiguité de Elements d'absence dans une Absence
    Là tu m'interpelles, car dans une même journée un salarié peut prendre une demi journée de RTT et de une absence pour Maladie de 16h à 17h (c'est un ex ). Les absences dans ce cas ne sont donc pas contigues, comment gérer ça alors?
    Et qu'est ce qu'il fait de 14 à 16 h ?
    Si cette période n'est pas dans le temps de travail, alors, on considère que c'est une seule absence et qu'il y a contiguité par rapport au temps de travail. Sinon, ces 2 heures sont injustifiées. Ou alors il faut que le salarié dépose deux demandes d'absences (matin et 16-17) et vienne travailler de 14 à 16 !
    La contiguité de l'absence doit s'apprécier par rapport aux périodes de présence normale dans l'entreprise.
    C'est pour cela que je propose les date-heure début et fin au niveau de chaque élément d'absence, encadré par la date-heure début et fin de l'absence. On peut ainsi faire tous les calculs de durée et les contrôles de validité de l'absence et de ses éléments.
    Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément.
    L'Art poétique - Nicolas Boileau (1636-1711)

  14. #14
    Nouveau membre du Club
    Inscrit en
    Avril 2003
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 49
    Points : 29
    Points
    29
    Par défaut
    Ok Nanci, désolé pour le retard mais cette fois-ci, c'est moi qui est pris quelques vacances .

    Bon, ta réponse me conforte dans mes choix. En effet, étant déjà allé tester le côté technique de la chose (programmation), j'ai du modifier certains aspects de la Bdd.
    Je suis donc retourné vers une solution plus proche du shéma 1 que tu m'avais proposé:
    1/ Une demande d'absence déposée est obligatirement mono-type.
    C'est plus simple à gérer pour moi lorsqu'un salarié prend plusieurs absences différentes sur une même journée.

    J'en ai donc fini pour l'instant avec ce prob d'absences (je vais pouvoir te laisser tranquille ), je te remercie beaucoup pour ton aide qui m'a été très précieuse.

    A bientôt.
    Seb
    El Che vive ! His spirit will never die !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Creer une vue avec gestion de date
    Par jf-nigou dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 01/06/2005, 16h36
  2. gestion de date de fin de mois
    Par bzh56 dans le forum Bases de données
    Réponses: 4
    Dernier message: 14/01/2005, 10h15
  3. Réponses: 3
    Dernier message: 13/08/2004, 18h52
  4. [MCD] [MCD] Gestion des dates
    Par brionne dans le forum Schéma
    Réponses: 3
    Dernier message: 30/05/2003, 13h01
  5. [BEST_PRACTICE][Merise] MCD & gestion de date
    Par Seb7 dans le forum Schéma
    Réponses: 4
    Dernier message: 16/04/2003, 17h07

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