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 contacts


Sujet :

Schéma

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3
    Points : 2
    Points
    2
    Par défaut [MCD] gestion contacts
    Bonjour,
    J'ai mis au point une petite base de données de gestion de contacts qui tournait très bien. Au départ, il était convenu qu'un contact pouvait travailler dans une ou plusieurs sociétés et que chaque société ne possédait qu'une et une seule adresse. Maintenant, je souhaiterais splitter chaque société en sièges et en services mais je ne parviens pas à créer le MCD et le MLD adéquats.

    Quelqu'un peut-il m'aider.
    Voici un exemple de ce à quoi je voudrais arriver:
    Jean travaille dans le service informatique de la société A
    Jean travaille aussi dans le service technique de la société A
    La société A a un siège social (adresse 1) et un siège d'exploitation (adresse 2). Les services informatique et technique se trouvent au siège d'exwploitation, le service administratif au siège social.
    Luc travail au service administratif de la société A => à l'adresse 2.
    Enfin, Jean travaille aussi dans le service informatique d'une société B qui ne possède qu'un seul siège social.

    J'ai une table Contacts (Id_Contact, Nom_Contact, ...), une table Societe (Id_Societe, Nom_Societe, ...), une table Sieges (Id_Siege, Nom_Siege, Adresse_Siege, ...), une table Services (Id_Service, Nom_Service, ...)
    Au départ, j'avais une table intermédiaire Détails_Societes où je retrouvais la clé du Contact et celle de la Société, ce qui permettait d'avoir un contact dans plusieurs sociétés mais maintenant, je ne m'y retrouve plus. Pouvez-vous m'aider, svp. Merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    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 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    Une proposition parmi d’autres...

    Si l’on considère qu’une entreprise (ou société) est composée d’établissements (ou sièges), qu’un établissement (ou siège) est composé de services, on peut définir une association entre les contacts et les services. Du service on remonte à l’établissement puis à l’entreprise. Pour éviter des accès inutiles, on utilise l’identification relative pour la table Siege et pour la table ContactService.

    Une entreprise ayant en général plusieurs adresses, en conséquence on peut mettre en œuvre une table à cet effet. Même principe concernant les établissements.

    Il existe d’autres schémas possibles, notamment en utilisant la spécialisation/généralisation, mais il est préférable de remonter au niveau conceptuel proprement dit pour modéliser en ce sens.
    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
     
    Create Table Contact (
       ContactId            Int                  Not null,
       ContactNom           Varchar(48)          Not null,
       Constraint Contact_PK Primary Key  (ContactId)
    ) ;
    Create Table Societe (
       SocieteId            Int                  Not null,
       SocieteNom           Varchar(48)          Not null,
       Constraint Societe_PK Primary Key  (SocieteId)
    ) ;
    Create Table Siege (
       SocieteId            Int                  Not null,
       SiegeId              Int                  Not null,
       SiegeNom             Char(14)             Not null,
       Constraint Siege_PK Primary Key  (SocieteId, SiegeId),
       Constraint Siege_Societe_1 Foreign Key (SocieteId)
          References Societe (SocieteId)
             On Update cascade On Delete Cascade
    ) ;
    Create Table AdresseSociete (
       SocieteId            Int                  Not null,
       AdresseId            Varchar(48)          Not null,
       Adresse1             Varchar(48)          Not null,
       Adresse2             Varchar(48)          Not null,
       Adresse3             Varchar(48)          Not null,
       Adresse4             Varchar(48)          Not null,
       Constraint AdresseSociete_PK Primary Key  (SocieteId, AdresseId),
       Constraint AdresseSociete_Societe_1 Foreign Key (SocieteId)
          References Societe (SocieteId)
             On Update cascade On Delete Cascade
    ) ;
    Create Table Service (
       SocieteId            Int                  Not null,
       SiegeId              Int                  Not null,
       ServiceId            Int                  Not null,
       ServiceNom           Varchar(48)          Not null,
       Constraint Service_PK Primary Key  (SocieteId, ServiceId),
       Constraint Service_Siege_1 Foreign Key (SocieteId, SiegeId)
          References Siege (SocieteId, SiegeId)
             On Update cascade On Delete Cascade
    ) ;
    Create Table AdresseSiege (
       SocieteId            Int                  Not null,
       SiegeId              Int                  Not null,
       AdresseId            Varchar(48)          Not null,
       Adresse1             Varchar(48)          Not null,
       Adresse2             Varchar(48)          Not null,
       Adresse3             Varchar(48)          Not null,
       Adresse4             Varchar(48)          Not null,
       Constraint AdresseSiege_PK Primary Key  (SocieteId, AdresseId),
       Constraint AdresseSiege_Siege_1 Foreign Key (SocieteId, SiegeId)
          References Siege (SocieteId, SiegeId)
             On Update cascade On Delete Cascade
    ) ;
    Create Table ContactService (
       ContactId            Int                  Not null,
       SocieteId            Int                  Not null,
       ServiceId            Int                  Not null,
       Constraint ContactService_PK Primary Key  (ContactId, SocieteId, ServiceId),
       Constraint ContactService_Contact_1 Foreign Key (ContactId)
          References Contact (ContactId)
             On Update cascade On Delete Cascade,
       Constraint ContactService_Service_2 Foreign Key (SocieteId, ServiceId)
          References Service (SocieteId, ServiceId)
             On Update cascade
    ) ;
    Je voudrais ajouter une pièce jointe du MLD, mais rien ne se passe quand j'utilise "Gérer les pièces jointes"...

    Je passe par ImageShack...

    (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
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci Fsmrel. Je remontais jusqu'à mon contact via les sociétés. C'est peut-être de là que venaient mes difficultés. Je vais voir ce que ça donne avec le modèle que tu proposes.

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Thanks
    Merci Maintenant, j'arrive au résultat voulu.
    Décidément, j'ai encore beaucoup de travail en matière d'analyse

  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 002
    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 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    En notant que, grâce à l’utilisation de l’identification relative, tous les couples {Societe, Contact} se retrouvent en un lieu unique : ContactService.

    Bon courage à vous pour la suite, et n’oubliez pas l’adage :
    C’est en forgeant qu’on devient forgeron et c’est en sciant que Léonard devint ...
    (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. [MCD] Gestion des habilitations de personnels
    Par sozie9372 dans le forum Schéma
    Réponses: 3
    Dernier message: 19/09/2006, 14h57
  2. [MCD]Gestion de Référencement de Produits
    Par shinrei dans le forum Schéma
    Réponses: 9
    Dernier message: 24/07/2006, 16h19
  3. [MCD] Gestion d'acces a des applications
    Par Tibler dans le forum Schéma
    Réponses: 12
    Dernier message: 25/04/2006, 18h10
  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