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 :

Système d'alerte par mail [MLD]


Sujet :

Schéma

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2012
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2012
    Messages : 8
    Points : 6
    Points
    6
    Par défaut Système d'alerte par mail
    Bonjour,

    Je voudrais pouvoir envoyer un mail quand une nouvel employé arrive dans un service et pouvoir lui envoyer des alertes si certains de ses documents administratifs ne sont pas à jour par exemple.
    J'aimerais garder le controle sur l'envoi de ces mails, càd, décider via un bouton si on envoie le mail ou pas, et si le mail a été envoyé je souhaiterais qu'il apparaisse un message sur le site pour indiquer que le mail a été envoyé (tout en laissant la possibilité d'en renvoyer un si jamais le destinaire affirme par ex qu'il ne l'a pas reçu..).

    Pour se "souvenir" ainsi des mails envoyés à chaque employé, j'ai d'abord pensé à ajouter un attribut booleen du genre "mailArriveeEnvoye" dans la table Employe mais biensur cela n'est pas concevable étant donné, que l'envoi de mails pourra être fréquent si par ex ses doc adminstratifs ne sont pas valides etc, et donc il n'est pas envisageable de creer un booleen pour chaque mail!

    Je pense qu'il faudrait créér une table "Notification" et la relier à "Employe" mais j'ai du mal à la concevoir, a y mettre les bons attributs.

    Merci beaucoup de m'éclairer!!

    A bientot

  2. #2
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour Clarisse123,

    Tu as donc, déjà, une table "Employe".
    Citation Envoyé par Clarisse123
    .../... cela n'est pas concevable étant donné que l'envoi de mails pourra être fréquent si par ex ses doc adminstratifs ne sont pas valides etc, et donc il n'est pas envisageable de creer un booleen pour chaque mail!
    ==> Bien vu, pour l'entité "Notification". Tu veux donc exprimer la règle de gestion suivante (si j'ai bien compris) :
    • un employé peut recevoir une ou plusieurs notifications ;
    • une notification ne peut être envoyée qu'à un et un seul employé.

    Je te suggère de toujours garder sous le coude ce récapitulatif de CinePhil. A sa lecture, tu trouveras les cardinalités suivantes :
    Employe -0,n---[Recevoir]---1,1- Notification
    donnant :
    Employe(IdEmploye, Nom, Prenom, AdresseMail, ...)
    Notification(IdNotification, #IdEmploye, Objet, Texte, Envoye(O/N), ...)
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  3. #3
    Membre chevronné
    Avatar de Pelote2012
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 925
    Points : 1 839
    Points
    1 839
    Billets dans le blog
    2
    Par défaut
    au lieu de voir un boolean par attribut, tu peux utiliser un filtre sur un integer.

    L'idée est d'utiliser les bits de l'integer (astuce d'un vieux programmeurs qui à l'époque le moindre octets était couteux)
    L'avantage est que ça te fais d'un coup 32 variables à disposition
    Par exemple
    Bool1 = 1 => 0001
    Bool2 = 2 => 0010
    Bool3 = 4 => 0100
    Bool4 = 8 => 1000
    ...
    Imaginons une personne avec Bool2 et Bool3 donc son status = 6 (4+2 => en bit 0110)
    Status & Bool1 = 0
    Status & Bool2 = 1
    Status & Bool3 = 1
    Status & Bool4 = 0

    L'avantage est aussi que ça te fait une réserve et que Bool1.... tu peux mettre ça dans une énumération, donc centraliser
    Si débugger est l'art d'enlever les bugs ... alors programmer est l'art de les créer

  4. #4
    Futur Membre du Club
    Inscrit en
    Juin 2012
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2012
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Merci pour vos réponses.

    Je vais réfléchir à la solution des bits.

    Sinon, en fait une notification peut être envoyée à plusieurs employés (dans le cas d'une arrivée dans un service par exemple, on prévient toute l'équipe!)

    Du coup, pour l'instant, voici comme je vois les choses :

    j'ai ma table EMPLOYE avec toutes les infos qui vont bien

    et je cree la table NOTIFICATION qui contiendrait les infos suivantes :
    -id
    -objet
    -envoye(booleen)
    -type(string) pour preciser le type de notif : invadite des docs, arrivee, depart ..
    -date d'envoi
    -destinataire
    -expediteur

    Les deux tables étant reliées par une relation plusieurs à plusieurs

    Est-ce correct ?
    Merci!

  5. #5
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Citation Envoyé par Clarisse123
    Sinon, en fait une notification peut être envoyée à plusieurs employés (dans le cas d'une arrivée dans un service par exemple, on prévient toute l'équipe!)
    ==> qu'à cela ne tienne !... as-tu jeté un coup d'oeil sur les liens ?
    Citation Envoyé par Clarisse123
    Les deux tables étant reliées par une relation plusieurs à plusieurs
    Est-ce correct ?
    ==> oui (voir le récapitulatif des cardinalités possibles).

    Donc:
    Employe -0,n---[Recevoir]---1,n- Notification
    donnant :
    Employe(IdEmploye, Nom, Prenom, AdresseMail, ...)
    Notification(IdNotification, Objet, Texte, ...)
    Employe_Notification(#IdEmploye, #IdNotification, Envoye(O/N), ...)
    ==> à toi de voir où placer le Envoye(O/N)
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  6. #6
    Futur Membre du Club
    Inscrit en
    Juin 2012
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2012
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Merci pour votre réponse,

    En fait j'utilise symfony2, du coup, en suivant l'exemple du site suivant (très clair) : http://docs.doctrine-project.org/pro...-bidirectional


    je comprends qu'il y a seulement besoin de créer l'entité EMPLOYE et l'entité NOTIFICATION, et je mettrai donc le booléen envoye dans notification.

    Est ce correct?

    Merci!!

  7. #7
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour Clarisse123,

    Citation Envoyé par Clarisse123
    .../... en suivant l'exemple du site suivant (très clair) .../...
    ==> : pas pour moi.

    Citation Envoyé par Clarisse123
    je comprends qu'il y a seulement besoin de créer l'entité EMPLOYE et l'entité NOTIFICATION
    ==> oui, + une table associative pour le lien n,n.

    Citation Envoyé par Clarisse123
    et je mettrai donc le booléen envoye dans notification.
    ==> à toi de voir :
    • booléen Envoye(O/N) dans Employe_Notification : suppose que, pour une notification donnée, il est possible que certains employés l'aient reçues, et d'autres pas ;
    • booléen Envoye(O/N) dans Notification : suppose que, pour une notification donnée, tous les employés concernés sont supposés l'avoir reçu ou pas.
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  8. #8
    Futur Membre du Club
    Inscrit en
    Juin 2012
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2012
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Je ne comprends pas très bien

    il vaut mieux que tout le monde reçoive les notifications non ?

    je ne comprends pas quand tu dis "il est possible"

    merci de ton aide!!

  9. #9
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour Clarisse123,

    Citation Envoyé par Clarisse123
    il vaut mieux que tout le monde reçoive les notifications non ?
    ==> c'est clair !
    A partir du moment où, dans ton application, le couple {#IdEmploye, #IdNotification} est créé dans la table Employe_Notification, c'est que l'on veut que l'employé en question reçoive la notification en question.

    En fait, le booléen Envoye(O/N) voudrait plutôt dire : la notification a-t-elle été envoyée ?
    Donc :
    • si tu mets ce booléen dans "Notification", tu considères que sa valeur est valable pour tous les employés de Employe_Notification ;
    • si tu mets ce booléen dans "Employe_Notification", tu considères que sa valeur est valable pour un employé de Employe_Notification.

    En aparté, ce booléen fait double emploi si tu stockes la date d'envoi (date d'envoi=null => non envoyé).
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  10. #10
    Futur Membre du Club
    Inscrit en
    Juin 2012
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2012
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    OK merci c'est plus clair!

    A bientot!

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

Discussions similaires

  1. Alerte par Mail à partir d'Excel
    Par quitiou dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 22/10/2009, 06h53
  2. Réponses: 9
    Dernier message: 04/02/2008, 11h49
  3. ALERTE par mail WSS 3.0 sans workflow
    Par farkiller dans le forum SharePoint
    Réponses: 11
    Dernier message: 10/12/2007, 10h47
  4. alerte par mail
    Par sanhoua dans le forum Modélisation
    Réponses: 2
    Dernier message: 22/10/2007, 14h59
  5. alerte par mail
    Par enkil dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 06/07/2007, 09h15

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