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] Gestion d'historique des mails envoyés, recus


Sujet :

Schéma

  1. #1
    Membre habitué
    Homme Profil pro
    Designer API
    Inscrit en
    Octobre 2003
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Designer API

    Informations forums :
    Inscription : Octobre 2003
    Messages : 280
    Points : 166
    Points
    166
    Par défaut [MCD] Gestion d'historique des mails envoyés, recus
    Bonjour,

    J'ai besoin d'aide sur une partie de la conception de ma base de donnée.
    J'ai donc plusieurs admin et plusieurs clients.
    Les admins possedent une liste de mail-types.

    J'aimerais à la fois stocker les mails envoyés au client par l'admin et ceux envoyés par le client.

    sachant qu'un admin peut aussi envoyer d'autre mail que les mail-type.

    J'avais pensé a une relation tri-pate entre admin, client et mail-type
    et une relation entre client et mail

    je sais pas si je pars dans la bonne direction. Et je vois pas ou figurent les mails admin n'etant pas des mail-type.

    comme jeux d'essai je pensais à :

    relation tri-pate :
    admin1 | mailtype1 | date | client1
    admin1 | mailtype3 | date | client1
    admin2 | mailtype4 | date | client3
    admin3 | mailtype2 | date | client3
    admin3 | mailtype2 | date | client4

    relation client/mail :
    client1 | message1 | date
    client1 | message2 | date
    client2 | message3 | date
    client3 | message4 | date
    client5 | message5 | date
    client5 | message6 | date

    j'ai aussi pensé à faire un héritage mail envoyé / recus héritant de mail

    si vous avez des liens ou exemples de ce cas je suis preneur

    Merci de votre aide

  2. #2
    Membre éclairé Avatar de Le Pharaon
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 880
    Points : 742
    Points
    742
    Par défaut
    Citation Envoyé par D4rK_C0uaK6
    j'ai aussi pensé à faire un héritage mail envoyé / recus héritant de mail
    .
    Héritage ou pas héritage tout dépend des propriétés de tes différents type de mail (mail-type, mail-simple, ...) que je souhaiterais voir ici clairement, sans les clefs étrangères.

    Merci
    Scuse me while I kiss the sky ! Jimi Hendrix

  3. #3
    Membre habitué
    Homme Profil pro
    Designer API
    Inscrit en
    Octobre 2003
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Designer API

    Informations forums :
    Inscription : Octobre 2003
    Messages : 280
    Points : 166
    Points
    166
    Par défaut
    Bonjour,

    voici la liste des proprietés :
    mail : dateReception, dateEnvoi, sujet, commentaire.

    mail-type : libelle, objet

    merci bien,
    David

  4. #4
    Membre éclairé Avatar de Le Pharaon
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 880
    Points : 742
    Points
    742
    Par défaut
    Voici ce que je te propose.

    Mail(idMail,DateReception,DateEnvoi,Sujet,Commentaire,Message)
    Mail-Type(idMail-Type,DateReception,DateEnvoi,Sujet,Commentaire,Message)

    Je confonds libelle et commentaire, et Objet et Sujet. Et dans un mail-type je crois que la date de réception et la date d'envoi pourraient être utiles.

    Les deux tables citées plus haut (à savoir mail et mail-type) pourraient être regroupées en une seule avec une propriété supplémentaire (typeMail) pour les défférencier.

    A toi de voir si ça résoud ton problème

    Bonne journée
    Scuse me while I kiss the sky ! Jimi Hendrix

  5. #5
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 001
    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 : 8 001
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut Historique des mails envoyés et reçus
    Une variante (il y en a d'autres...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    /* Administrateurs */
    
    CREATE TABLE Admin (
      Admin_Id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
      Admin_Nom TEXT NOT NULL,
      PRIMARY KEY(Admin_Id)
    );
    
    /* Clients */
    
    CREATE TABLE Client (
      Cli_Id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
      Cli_Nom TEXT NOT NULL,
      PRIMARY KEY(Cli_Id)
    );
    
    /* Table des mails envoyés par les admin aux clients */
    /* Le séquenceur est relatif au couple  {Admin, Client}. Il permet d'éviter les doublons */
    
    CREATE TABLE AdminMail (
      Admin_Id INTEGER UNSIGNED NOT NULL,
      Cli_Id INTEGER UNSIGNED NOT NULL,
      Sequenceur INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
      Date_Envoi DATE NOT NULL,
      Sujet TEXT NOT NULL,
      Commentaire TEXT NOT NULL,
      PRIMARY KEY(Admin_Id, Cli_Id, Sequenceur),
      FOREIGN KEY(Admin_Id)
        REFERENCES Admin(Admin_Id)
          ON DELETE NO ACTION
          ON UPDATE NO ACTION
    );
    
    /* Types de mails */
    
    CREATE TABLE Type_Mail (
      Type_Mail_Id TEXT NOT NULL AUTO_INCREMENT,
      Type_Mail_Libelle TEXT NOT NULL,
      PRIMARY KEY(Type_Mail_Id)
    );
    
    /* Type de mail d'un mail d'un admin, seulement si mail typé */  
    /* Pour éviter les valeurs nulles (on peut aussi utiliser une valeur par défaut) */
    
    CREATE TABLE Admin_Mail_Type_Mail (
      Cli_Id INTEGER UNSIGNED NOT NULL,
      Admin_Id INTEGER UNSIGNED NOT NULL,
      Sequenceur INTEGER UNSIGNED NOT NULL,
      Type_Mail_Id TEXT NOT NULL,
      PRIMARY KEY(Cli_Id, Admin_Id, Sequenceur),
      FOREIGN KEY(Admin_Id, Cli_Id, Sequenceur)
        REFERENCES AdminMail(Admin_Id, Cli_Id, Sequenceur)
          ON DELETE CASCADE
          ON UPDATE CASCADE
    );
    
    /* Mails reçus des clients */
    /* Comme pour Outlook, il n'est pas nécessaire de mettre dans le même sac les mails reçus et les mails envoyés */
    /* en cas de besoin, une bonne union entre les mails admin et les mails clients, et puis voilà (l'algèbre realtionnelle, ça sert) */
    
    CREATE TABLE ClientMail (
      Cli_Id INTEGER UNSIGNED NOT NULL,
      Sequenceur INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
      Date_Envoi DATE NOT NULL,
      Sujet TEXT NOT NULL,
      Commentaire TEXT NOT NULL,
      PRIMARY KEY(Cli_Id, Sequenceur),
      FOREIGN KEY(Cli_Id)
        REFERENCES Client(Cli_Id)
          ON DELETE CASCADE
          ON UPDATE CASCADE
    );
    (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.

  6. #6
    Membre éclairé Avatar de Le Pharaon
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 880
    Points : 742
    Points
    742
    Par défaut
    Code fsmrel : Sélectionner tout - Visualiser dans une fenêtre à part
     en cas de besoin, une bonne union entre les mails admin et les mails clients, et puis voilà (l'algèbre realtionnelle, ça sert)
    Je crois qu'on traite du Niveau Conceptuel
    Scuse me while I kiss the sky ! Jimi Hendrix

  7. #7
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 001
    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 : 8 001
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut historique des mails envoyés, recus
    A l'attention de Bujuman,

    J'ai effectivement écrit :

    En cas de besoin, une bonne union entre les mails admin et les mails clients, et puis voilà (l'algèbre relationnelle, ça sert)
    Et vous faites observer :
    Je crois qu'on traite du Niveau Conceptuel
    Il est évident que, si l'on ne dispose malheureusement pas de langage de manipulation de données au niveau conceptuel, alors on doit différer les opérations sur les données, à un stade donc où l'on produit et, hélas ! il est parfois trop tard. En fait, l'union dont je parle peut faire l'objet d'une vue, qui n'est jamais qu'une spécialisation de table, au même titre que les tables de base obtenues à partie du niveau conceptuel (une table de base est une table et une vue est une table).
    Je pense qu'il n'est pas interdit, même au niveau conceptuel de se poser des questions sur les conséquences de ce que l'on modélise et des lacunes à combler (réfléchissez par exemple au métabolisme des données : quelles sont les conséquences de la suppression d'une occurrence sur celles qui lui sont liées (leurs réactions), etc.)
    Pour tout dire, je me sens à l’étroit au strict niveau conceptuel statique et, pour y voir plus clair, j’ai besoin de toute la puissance de la Théorie relationnelle (je n’ai pas dit SQL qui, je vous fais une confidence, signifie Sorry Query Language). Inversement, il est des situations où Merise m'aide beaucoup. Bref, tout ça se complète et je m'en sers.

    Salutations
    (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. Réponses: 2
    Dernier message: 04/06/2008, 14h51
  2. [Mail] Les liens des mails envoyés n'apparaissent pas
    Par ecarbill dans le forum Langage
    Réponses: 4
    Dernier message: 30/05/2008, 12h35
  3. Récupérer des mails envoyés ?
    Par Bestiol dans le forum Unix
    Réponses: 3
    Dernier message: 16/04/2008, 14h21
  4. Réponses: 4
    Dernier message: 13/07/2006, 10h33
  5. [javaMail] Aucune trace des mails envoyés !...
    Par toctof dans le forum API standards et tierces
    Réponses: 8
    Dernier message: 18/10/2005, 09h09

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