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 :

[MCD]Gros problème de conception


Sujet :

Schéma

  1. #1
    Membre du Club Avatar de tiger33
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2004
    Messages : 77
    Points : 56
    Points
    56
    Par défaut [MCD]Suivi d'un planning de rendez-vous
    Bonjour,

    Je vous plante le décor c'est long mais nécessaire :

    Il s'agit d'une appli PHP/Mysql pour aidé un Responsable de pôle de ressources humaines à gérer son activité.

    Il traite des agent, ces agents sont affectés à des misions, elle-mêmes rattacher à un projet principal et éventuellement des projets annexes, qui eux n'apparaisse pas.Pour l'affectation, le RH produit un lettre de mission (LM).

    Dans l'idéal, le responsable opérarationnel de l'agent produit en fin de mission un bilan de mision(BM) qui permet au RH de réaliser L'entrentien professionnel annuel de l'agent (EPA). Dans l'idéal car le RH est souvent obligé de réclamer plusieurs fois le BM voire même de faire l'EPA sans.

    Le but de l'aplli est donc de permettre au RH d'avoir une vue sur l'activité qu'il aura à faire dans l'année (LM à envoyer, EPA à faire, BM à réclamer BM reçus..)

    Un document (LM, BM compte-rendu d'EPA) n'apparait dans la base qu'une fois produit. Je me base sur la date de production ou de fin de mission pour calculer une date aniversaire ou de renouvellement avec affichage en rouge si cette date est antéreure à la date du jour (retard).

    Là on arrive enfin au problème : comment puis-je faire pour qu'en base quelque chose me dise "cet EPA (par exemple) dont la date anniversaire est dépassée à été suivi d'un autre EPA dont la date anniversaire n'est pas dépassée donc tu n'as plus à l'afficher en rouge" sachant que je veux le garder en base.

    Attaché une image du mcd Actuel et le zip contenant le .xml du mcd pour ceux qui ont db designer 4.

    merci et désolé pour la longueur.
    Tiger33,
    Développeur, chômeur, en auto formation sur joomla!
    Site à venir

  2. #2
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    7 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 7 965
    Points : 30 777
    Points
    30 777
    Billets dans le blog
    16
    Par défaut
    Bonjour Tiger33,

    "cet EPA (par exemple) dont la date anniversaire est dépassée à été suivi d'un autre EPA dont la date anniversaire n'est pas dépassée donc tu n'as plus à l'afficher en rouge"
    Appelons epa1 l'EPA dont la date d'anniversaire est dépassée.
    Appelons epa2 l'autre EPA dont la date d'anniversaire n'est pas dépassée.

    Je suppose que epa1 existe dans la table EPA.

    Question : epa2 est-il stocké dans la table EPA ? Si oui, pourquoi et à partir de quels éléments doit-on focaliser l'attention de l'utilisateur sur epa1 plutôt que epa2 ?

    Si epa2 n'est pas stocké dans la table EPA, à partir de quels éléments décider ne pas afficher en rouge epa1 ? existence d'une date de dernier BM relative à l'agent ? une autre date de quelque chose ?
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  3. #3
    Membre du Club Avatar de tiger33
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2004
    Messages : 77
    Points : 56
    Points
    56
    Par défaut
    Exemple concret : Le RH se connecte le 19/10/2006.

    Il y a un agent X pour lequel le dernier epa date du 18/10/2005(epa1,réalisé et stocké dans la base ce jour là) Par le calcul je fais l'opération suivante : anniversaire=date + 1an=18/10/2006 =>dépassé=>affichage rouge.

    le 20/10 le RH rencontre X et réalise son EPA, il crée alors un nouvel enregistement d'EPA dans la base.(EPA2) mon problème est qu'est à partir de ce moment là, je ne veux plus que l'epa 1 s'affiche en rouge puisque l'epa 2 a été réalisé. pourtant, je veux conserver en base l'epa 1 et l'epa 2 pour des raisons de traçage historique. j'espère avoir répondu à ta question.
    de mon côté je pense avoir trouvé une solution, mais plusieurs avis ça fait pas de mal! Merci
    Tiger33,
    Développeur, chômeur, en auto formation sur joomla!
    Site à venir

  4. #4
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    7 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 7 965
    Points : 30 777
    Points
    30 777
    Billets dans le blog
    16
    Par défaut
    je veux conserver en base l'epa 1 et l'epa 2 pour des raisons de traçage historique
    Si j’ai bien compris, seul le dernier EPA d’un agent donné est à afficher en rouge et à condition que la colonne Date_Prec de cet EPA (ou une autre date, peu importe ici) soit d’une année inférieure à la date du jour. Du point de vue du MCD, il n’y a rien en principe à changer : on sait retrouver cet EPA par SELECT.

    Dans l’exemple ci-dessous, en supposant que nous sommes le '2006-10-19', j’utilise la date du '2005-10-19' en dur dans la requête pour représenter la date du jour moins 1 an. En réalité, il faudra jouer avec la date système (Getdate() en SQL Server, Current Date en DB2, etc.)
    Dans un premier temps, étant donné que pour un agent donné (celui qui dont l’Id_epa est égal à 1 dans l’exemple), on a une liste d’EPA datés, seul le dernier est candidat à rougeoyer : on peut utiliser la fonction MAX de SQL, appliquée à Date_Prec pour l’isoler :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Select  Id_Epa, MAX(Date_Prec)
    From EPA 
    Where Id_Epa = 1
    And Date_Prec < '2005-10-19' 
    Group By (Id_Epa);
    Mais la requête est incomplète, car le dernier EPA retenu (disons epa1) peut en fait être suivi d’un autre EPA plus récent (disons epa2) et n’ayant pas répondu à la condition précédente, car daté du, ou postérieur au '2005-10-19'. On doit donc vérifier l’existence de epa2, avant de faire rougir epa1, d’où la requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Select  Id_Epa, MAX(Date_Prec)
    From EPA 
    Where Id_Epa = 1
    And Date_Prec < '2005-10-19' 
    And Not Exists (
    ___________Select * 
    ___________From EPA 
    ___________Where Id_Epa = 1 
    ___________And Date_Prec >= '2005-10-19'
    ____________)
    Group By (Id_Epa) ;
    Tout ceci est bien sûr à tester. Merci de me tenir au courant...

    Enjoy,

    Fsmrel
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  5. #5
    Membre du Club Avatar de tiger33
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2004
    Messages : 77
    Points : 56
    Points
    56
    Par défaut
    C'est presque cà, en fait moi je pensais, grâce à yannis du chat, juste faire un order by date desc dans mon select et ne prendre que le dernier (chronologiquement) par PHP (il suffit de ne pas utilisé de while() à l'appel de mysql_fetch_rows) laquelle des deux solution est la plus optimale ? désolé çà sort un peu du topic du forum mais le problème s'est déplacé

    merci
    Tiger33,
    Développeur, chômeur, en auto formation sur joomla!
    Site à venir

  6. #6
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    7 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 7 965
    Points : 30 777
    Points
    30 777
    Billets dans le blog
    16
    Par défaut
    Bonjour Tiger33,

    Au fond, il y a deux approches du problème :

    - Une approche séquentielle, orientée programmation impérative, faisant intervenir l'instruction FETCH immergée dans un programme en langage Truc.

    - Une approche ensembliste, déclarative, selon laquelle on sous-traite au SGBD l'algorithmique, donc l'emploi des couples IF-ENDIF, WHILE-ENDWHILE, etc.

    - Et bien sûr d'autres approches fonctionnelle, déductive, etc.

    L'essentiel reste bien sûr de produire quelque chose de robuste, en utilisant l'approche avec laquelle on se sent à l'aise !

    Bonne continuation

    FSmrel
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

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

Discussions similaires

  1. [conception]Conseil pour création DB (MCD)
    Par aidechoute dans le forum Modélisation
    Réponses: 22
    Dernier message: 25/03/2007, 12h07
  2. Conception de gros site de gestion pro
    Par Seth77 dans le forum Général Conception Web
    Réponses: 6
    Dernier message: 04/01/2007, 15h25
  3. [MCD] Conception d'un MCD pour des étudiants d'une fac
    Par beegees dans le forum Schéma
    Réponses: 7
    Dernier message: 16/10/2006, 03h05
  4. conception MCD questionnaires
    Par alliance dans le forum Administration
    Réponses: 1
    Dernier message: 01/08/2006, 17h02
  5. [CONCEPTION MCD] Problème avec les clés composées
    Par fabriceMerc dans le forum Schéma
    Réponses: 3
    Dernier message: 14/02/2005, 10h43

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