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 :

[MPD] Contrainte d'exclusion et identifiant relatif


Sujet :

Schéma

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 20
    Points : 18
    Points
    18
    Par défaut [MPD] Contrainte d'exclusion et identifiant relatif
    Bonjour, j'ai réalisé un MCD comprenant une contrainte d'exclusion sur deux tables reliées à une autre par un identifiant relatif, voila ce que ca donne globalement :

    ................. __(1,1)___________ Groupe de clients
    ............... /............|......................|(0,n)
    Commande /.............X ....................|
    ...............\.............| .....................|(0,1)
    ................\__(1,1)__|____________Client


    Un client peut donc appartenir à un groupe de client. S'il appartient à un groupe de client alors il ne fait plus de commande, c'est directement le groupe qui le fait. Une commande est donc soit passée par un client soit par un groupe de client.Mais je ne vois pas comment modéliser cela en MPD à moins de retirer les identifiants relatifs sur Commande et laisser une clé primaire normale.

  2. #2
    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
    Tu peux généraliser les clients par un héritage de données :
    groupe_client -(1,1)----Etre----0,1- client -0,n----Passer----1,1- commande
    |
    1,n
    |
    |
    inclure
    |
    |
    0,1
    |
    client_indiv -(1,1)----Etre----0,1--------|

    Et plus besoin d'exclusion puisqu'il n'y a plus qu'une association entre client et commande.

    Tables :
    client (clt_id, [colonnes communes à tous les clients]...)
    groupe_client (gcl_id_client, [colonnes spécifiques aux groupes de clients]...)
    client_indiv (cli_id_client, [colonnes spécifiques aux groupes de clients individuels]...)
    cli_inclure_gcl (cig_id_client_indiv, cig_id_groupe_client)
    commande (cmd_id, cmd_id_client...)
    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 !

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 20
    Points : 18
    Points
    18
    Par défaut
    D'accord merci, par contre pour cette table :
    cli_inclure_gcl (cig_id_client_indiv, cig_id_groupe_client)

    Etait-elle vraiment nécessaire ou puis-je simplement mettre gcl_id_client en fk dans la table client_indiv . Je ne comprends pas vraiment à quoi sert cette table cli_inclure_gcl à vrai dire.

  4. #4
    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
    Citation Envoyé par geof51 Voir le message
    D'accord merci, par contre pour cette table :
    cli_inclure_gcl (cig_id_client_indiv, cig_id_groupe_client)

    Etait-elle vraiment nécessaire ou puis-je simplement mettre gcl_id_client en fk dans la table client_indiv . Je ne comprends pas vraiment à quoi sert cette table cli_inclure_gcl à vrai dire.
    La réponse est dans mon blog.
    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 !

  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 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Bonjour,

    Citation Envoyé par geof51 Voir le message
    Mais je ne vois pas comment modéliser cela en MPD à moins de retirer les identifiants relatifs sur Commande et laisser une clé primaire normale.
    De mon côté, j’ai transformé votre modèle en prenant bien garde à ne pas lire ce qu’a écrit CinePhil. J’ai ensuite comparé sa solution avec la mienne : ce sont les mêmes (au nom près évidemment des entités-types et des propriétés).

    MCD (Power AMC V11)

    En ce qui concerne le triangle bizarre porté par le lien d’association connectant CLIENT_GROUPE et CLIENT, voir par exemple ici.


    MLD (généré par Power AMC)



    Au niveau SQL, prévoir des triggers pour garantir le partitionnement (totalité et exclusion) et la contrainte selon laquelle « Si un client dépend d’un groupe, alors il ne peut plus passer de commandes ».
    (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 à l'essai
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 20
    Points : 18
    Points
    18
    Par défaut
    Merci pour ces réponses constructives, ca m'a beaucoup aidé !

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

Discussions similaires

  1. [MCD] Définition 'lien identifiant' & 'identifiant relatif'
    Par knoxville dans le forum Schéma
    Réponses: 14
    Dernier message: 19/03/2011, 01h27
  2. Identifiant relatif PowerDesigner
    Par moumoune65 dans le forum PowerAMC
    Réponses: 1
    Dernier message: 29/08/2007, 19h57
  3. identifiant relatif en sql
    Par jiojioforever dans le forum Langage SQL
    Réponses: 7
    Dernier message: 09/02/2007, 15h11
  4. [Identifiant relatif] access
    Par Fredo02 dans le forum Access
    Réponses: 1
    Dernier message: 19/01/2006, 21h14
  5. Générer un identifiant relatif > l'entité faible en prati
    Par vmolines dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 19/08/2005, 15h59

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