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 :

Modelisation d'une Tache Périodique


Sujet :

Schéma

  1. #1
    Membre actif Avatar de snipes
    Inscrit en
    Septembre 2004
    Messages
    547
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 547
    Points : 295
    Points
    295
    Par défaut Modelisation d'une Tache Périodique
    Bonjour tout le monde,
    Je suis en train de mettre en place un MCD, cependant il y a une partie que je vois pas comment modéliser.
    Je m'explique :
    1 personne réalise une ou plusieurs taches, ces taches sont planifiées pour un ou plusieurs jour de la semaine (pour un jour il peut y avoir plusieurs taches planifiées)
    Mon problème c'est que je souhaiterai savoir si la tache a été réalisé (donc enregistrer la date de réalisation) pour pouvoir faire ressortir cette même tache le lendemain, par exemple, dans le cas contraire

    Exemple concret : On est mardi Toto, doit imprimer l'etat d'une machine, tache qu'il effectue le lundi mardi et jeudi (par exemple), si la tache n'a pas été effectué lundi elle doit être rappelé a Toto

    Voici ce que j'ai produit a ce niveau pour le moment :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    PERSONNE -(0,n)---- realiser ----(1,1) TACHE -(1,n) --planifier--(1,n)-JOUR
    Mais ceci me permet pas de savoir si la tache est realisée et encore moins de pouvoir faire un rappel sur cette tache non realisée les jours précédents

  2. #2
    Membre actif Avatar de SmileSoft
    Inscrit en
    Mars 2008
    Messages
    436
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 436
    Points : 214
    Points
    214
    Par défaut
    salut,

    ci joint une proposition, avec la propriété booléenne realise dans l'association REALISER, qui enregistre est ce qu'une tâche a bien été réalisée ou non, et la propriété Date qui enregistre la date de réalisation de cette tâche.
    Un thésard a souvent un problème de motivation jusqu'au moment où il aura un problème de temps....

  3. #3
    Membre actif Avatar de snipes
    Inscrit en
    Septembre 2004
    Messages
    547
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 547
    Points : 295
    Points
    295
    Par défaut
    Salut SmileSoft
    j'ai egalement pensé à ce cas de figure mais la question que je me posais c'etait : Comment faire pour savoir les taches qui n'ont pas été realisée? et je ne sais pas si ca fait ressortir le fait "qu'une tache est realisée par une seule personne !"

    Admettons qu'il y ait une tache à effectuer le lundi mardi et jeudi, nous sommes jeudi et Toto n'a rien fait mardi !
    La date de realisation et le booléen du lundi ont bien été renseigné mais comment faire pour renseigner les élements du mardi !

    Cette partie ce gère au niveau applicatif si je comprend bien, faudrait que je trouve une façon de renseigner ces éléments

  4. #4
    Membre actif Avatar de SmileSoft
    Inscrit en
    Mars 2008
    Messages
    436
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 436
    Points : 214
    Points
    214
    Par défaut
    Citation Envoyé par snipes Voir le message
    Salut SmileSoft
    j'ai egalement pensé à ce cas de figure mais la question que je me posais c'etait
    : Comment faire pour savoir les taches qui n'ont pas été realisée?
    par une simple requête SQL en sélectionnant id_Tâche sur la table REALISER dont realise vaut faux,

    et je ne sais pas si ca fait ressortir le fait "qu'une tache est realisée par une seule personne !"
    oui tu as raison, en fait puis que la relation est ternaire pour modéliser les cardinalités on prend souvent la cardinalité la plus générale dans ton cas:
    ---(1,1) TACHE (1,n)---
    (1,n) est plus générale que (1,1) autrement (1,1) est inclut dans (1,n), c'est pour ça dans la proposition j'ai pris (1,n) du coté TACHE.

    Admettons qu'il y ait une tache à effectuer le lundi mardi et jeudi, nous sommes jeudi et Toto n'a rien fait
    mardi !
    La date de realisation et le booléen du lundi ont bien été renseigné mais comment faire pour renseigner les élements
    du mardi !

    Cette partie ce gère au niveau applicatif si je comprend bien, faudrait que je trouve une façon de renseigner ces éléments
    oui c'est ce que je pense aussi ^^, si j'ai bien compris la table REALISER doit être renseigné quotidiennement, une solution est d'initialiser le champ booléen realise à faux , une foi la tache réalisée il prend la valeur vrai et d'affecter faux au booléen realise une foi le jour est épuisé, pour ton exemple si lundi est épuisé autrement si on est mardi, à 00:00 on affecte faux au champ realise par une requête de mise à jour SQL.
    comme ça tu sauras que la tache de mardi n'a pas été realisée puis que realise prend toujours faux.
    Un thésard a souvent un problème de motivation jusqu'au moment où il aura un problème de temps....

  5. #5
    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 : 60
    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 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    En me basant sur le modèle proposé par Smile Soft...

    Admettons qu'il y ait une tache à effectuer le lundi mardi et jeudi
    Il y a donc trois lignes dans l'association REALISER :
    {id_Personne, Jour, id_Tache, realise, Date}
    {idDeToto, Lundi, TacheX, FALSE, NULL}
    {idDeToto, Mardi, TacheX, FALSE, NULL}
    {idDeToto, Jeudi, TacheX, FALSE, NULL}

    nous sommes jeudi et Toto n'a rien fait
    mardi !
    La date de realisation et le booléen du lundi ont bien été renseigné mais comment faire pour renseigner les élements
    du mardi !
    L'état des 3 lignes jeudi matin est donc le suivant (en gras ce qui a changé) :
    {id_Personne, Jour, id_Tache, realise, Date}
    {idDeToto, Lundi, TacheX, TRUE, DateDuLundi}
    {idDeToto, Mardi, TacheX, FALSE, NULL}
    {idDeToto, Jeudi, TacheX, FALSE, NULL}

    Avec une fonction adéquate pour extraire le jour de la semaine de la date courante (à voir selon le SGBD), il est possible en SQL de savoir quelles tâches n'ont pas été réalisées au jour prévu et d'utiliser cette requête pour envoyer un mel incendiaire à Toto qui n'a pas fait son boulot !

    Ensuite, on peut, si nécessaire, archiver chaque semaine les tâches de la semaine passée puis réinitialiser les tâches périodiques en remettant à FALSE et NULL les colonnes 'realise' et 'date' de la table associative REALISER.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « 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 la suite Linux Mageïa !

  6. #6
    Membre actif Avatar de snipes
    Inscrit en
    Septembre 2004
    Messages
    547
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 547
    Points : 295
    Points
    295
    Par défaut
    Ok ca me parait beaucoup plus clair maintenant, je n avais pas pensé à cette initialisation a "false" ce qui change tout effectivement

    Merci pour votre participation

  7. #7
    Membre actif Avatar de snipes
    Inscrit en
    Septembre 2004
    Messages
    547
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 547
    Points : 295
    Points
    295
    Par défaut
    re-salut, je me permet de relancer le post car il y'a une partie que je n'arrive pas a eclaircir

    lorsque j'ai inseré mes 3 taches dans l'association REALISER, comment s'y prendre pour effectuer l'archivage en fin de semaine

    Exemple: (scénario catastrophe)
    si je souhaite effectuer l'archivage tous les vendredis et la comme par hasard le vendredi qui vient est un jour ferié (gestion des jours fériés donc)
    On est lundi, l'archivage n'a pa été effectué et en plus de ca Toto n'avait pas effectué la tache du lundi de la semaine précédente

    Il faudrait un indicateur pour savoir si l'archivage a deja été effectué pour la semaine précédente mais au cas ou on effectue l'archivage il faudrait quand meme rappeler a Toto qu'il a la tache du Lundi de la semaine précédente a realiser

    Solution a chaud trouvée pendant que j'ecrivais le Reply :
    Chaque jour, effectuer l'archivage du jour precedent en inserant dans la table "historique" la date de ce jour.Comme ca lors de l'initialisation de la table REALISER pour la nouvelle semaine je peux quand meme rechercher dans "historique" toutes les taches non realiser pour effectuer un rappel ?

    Vous en pensez quoi ?

    ps : ca correspond peut etre plus a cette partie du forum

  8. #8
    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 : 60
    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 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Ca me semble une bonne idée en effet.
    Ca permet de garder un historique des tâches effectuées et d'y conserver éventuellement des commentaires sur la tâche.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « 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 la suite Linux Mageïa !

  9. #9
    Membre actif Avatar de snipes
    Inscrit en
    Septembre 2004
    Messages
    547
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 547
    Points : 295
    Points
    295
    Par défaut
    Merci encore CinePhil
    bon bah re-Tag Résolu

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

Discussions similaires

  1. exécuter une tache périodiquement
    Par fangriz dans le forum Général Java
    Réponses: 26
    Dernier message: 24/07/2009, 11h19
  2. Réponses: 2
    Dernier message: 02/08/2004, 17h34
  3. API : créer une tache planifiée.
    Par Argonz dans le forum Windows
    Réponses: 3
    Dernier message: 05/05/2004, 14h16
  4. Créer une tache planifié (.bat ou wsh)
    Par BRAUKRIS dans le forum Windows
    Réponses: 4
    Dernier message: 18/03/2004, 17h12
  5. [JSP] Ajout d'une tache dans le planificateur Windows
    Par PhoneKilleR dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 12/09/2003, 15h10

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