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] Probleme de cardinalité


Sujet :

Schéma

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2006
    Messages : 23
    Points : 17
    Points
    17
    Par défaut [MCD] Probleme de cardinalité
    Salut à tous,

    La je suis entrain de faire un mcd sur la gestion de femme de menage. Mais je bloque au niveaux du mcd.

    Voila la partie du mcd qui me pause probleme:


    Je vais vous détaillé ce que j'attend de cette partie:
    - Une ou plusieur FDM* doivent faire le menage à une date donnée à un endroit
    - Un lieu peut etre nettoyer à une date donnée par une ou plusieurs FDM
    - Une FDM ne peut pas etre à une meme date à plusieur endroit
    FDM= Femme De Menage

    Je me pose plusieurs questions sur cette partie du MCD:
    - Es ce que cette partie du MCD est correcte?
    Si elle est pas correcte :
    - Es ce que la solution serait de créée une Entitée Date et de faire une relation à 3 pattes??

    Voila, j'attend votre aide, pour m'eclairé...

    Merci d'avance

  2. #2
    Membre averti

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2004
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2004
    Messages : 220
    Points : 322
    Points
    322
    Par défaut
    Tout d'abord une remarque sur faire le ménage : nettoyer conviens
    (pour la simple raison que faire le ménage se traduit par une entité menage et une association faire) ... mais ce n'est qu'une remarque de puriste (en suis-je un ? ... là est la question)

    Cette petite remarque faite, regardons ton problème.
    [quote]- Une ou plusieur FDM* doivent faire le menage à une date donnée à un endroit[quote]
    La date dans la relation (nettoyer) est bonne, bien que je définirai une date de début et une date de fin (date pouvant se composer de jour ou même heure ; histoire d'avoir de la précision).
    Or, d'après le (petit) théorème de Merise ()Toute relation comportant un ou plusieurs attributs est du type x-n/x-n.
    En clair les associations paraissent bonne. vérifions s'il ne faut pas un 0-n quelque part ...

    - Un lieu peut etre nettoyer à une date donnée par une ou plusieurs FDM
    Certes, mais un lieu peut ne pas être nettoyé ... donc [b]0-n[b/]

    - Une FDM ne peut pas etre à une meme date à plusieur endroit
    Là, tout dépend de ce que tu souhaites gérer. Ton programme doit-il permettre de gérer des plannnings ? En effet, si les femmes de ménages peuvent ne pas travailler (gestion des vacances, etc.), on trouvera du 0-n. Si jamais tu considère qu'une femme de ménage a forcément quelque chose à nettoyer, alors il te faut 1-n
    "Une méthode fixe n'est pas une méthode" (Proverbe chinois)

  3. #3
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Dans ta solution actuelle, une femme de ménage ne peut travailler dans un lieu qu'à une seule date, ce qui est sans doute faux. Pour résoudre ce problème, je vois deux solutions :
    1. Créer une entité Date et une association ternaire
    2. Remplacer l'association par une entité associative dans laquelle la Date sera partie de la clé.
    Le choix entre ces deux solutions se fait sur le besoin ou non de l'entité Date.
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  4. #4
    Membre averti Avatar de Soutou
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    328
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 328
    Points : 378
    Points
    378
    Par défaut
    Oui la solution 1. est meilleure en ajoutant une contrainte d'unicité du couple (FDM, Moment) vers Lieu.
    Cardinalités 0,N partout dans la ternaire. L'entité Moment contiendra datemenage.

  5. #5
    Membre confirmé

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 113
    Points : 488
    Points
    488
    Par défaut
    Comme dans bien des cas, le recours à l'entité Date est une mauvaise solution conceptuelle, essentiellement inspirée par la solution logique résultante. dans ce cas, on ne gère pas le temps; on gère des Interventions de Femmes de ménage dans des Lieux.

    La solution conceptuelle que je suggère est la suivante:


    Bien sur, au niveau logique, elle aboutit au même résultat qu'avec une entité Date, mais on a affirmé que l'objet de gestion est l'Intervention (ou faire le ménage); on peut ainsi les dénombrer, les citer !
    Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément.
    L'Art poétique - Nicolas Boileau (1636-1711)

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2006
    Messages : 23
    Points : 17
    Points
    17
    Par défaut
    Je rentre de week end, et je suis un peu fracasse (36 15 my life)

    Merci pour vos reponse, je regarderai plus en detail demain. Et je viendrai surment encor vous derrangez

  7. #7
    Membre à l'essai
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    13
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 13
    Points : 15
    Points
    15
    Par défaut
    Bonsoir
    moi ce que je te propos c'est de mettre la date comme 1 clé primaire dans la
    relation faire le menage et puisque les cardinalités sont 1,n donc dans le MLD
    il y auras 3 clé primaires pour la table faire le menage : LieuID ,FDM ID et Date
    donc les regles de gestion seront validées avec cette relation
    _ Une ou plusieur FDM* doivent faire le menage à une date donnée à un endroit
    - Un lieu peut etre nettoyer à une date donnée par une ou plusieurs FDM
    - Une FDM ne peut pas etre à une meme date à plusieur endroit

  8. #8
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Citation Envoyé par debutante84
    il y auras 3 clé primaires pour la table faire le menage : LieuID ,FDM ID et Date
    - Une FDM ne peut pas etre à une meme date à plusieur endroit
    Donc la clé devrait être (FDM_ID, Date) .
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  9. #9
    Membre confirmé

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 113
    Points : 488
    Points
    488
    Par défaut
    SVP, arrêtez de confondre MCD (entité, relation, cardinalités, identifiant....)
    et MLD (table, attribut, clés primaires et étrangères, ...)

    1 clé primaire dans la relation
    Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément.
    L'Art poétique - Nicolas Boileau (1636-1711)

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2006
    Messages : 23
    Points : 17
    Points
    17
    Par défaut
    salut à tous.

    En regardant vos reponse, j'ai essayé de faire un nouveau MCD, vous allez me dir se que vous en pensez.


    FDM (FDM_id, FDM_nom,...)
    moment (ID_date, date)
    Lieu (lieu_id, lieu_nom, ...)
    nettoyer (#FDM_id, #ID_date, #lieu_id)

    Par contre j'aimerai savoir si sa repond bien à mes attentes:
    - Une ou plusieur FDM* doivent faire le menage à un moment donnée à un endroit
    - Un lieu peut etre nettoyer à un moment donnée par une ou plusieurs FDM
    - Une FDM ne peut pas etre à un meme moment à plusieur endroit
    FDM= Femme De Menage

  11. #11
    Membre averti Avatar de Soutou
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    328
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 328
    Points : 378
    Points
    378
    Par défaut
    "- Une ou plusieur FDM doivent faire le menage à un moment donnée à un endroit "?

    Là tu peux obliger personne à bosser. La base stockera le fait qu'une personne à une date donnée
    ne bossera qu'à un endroit.

    "- Un lieu peut etre nettoyer à un moment donnée par une ou plusieurs FDM" ?

    Oui ça marche
    nettoyer (Jeanne, 16/5/2005 15h, Louvre)
    nettoyer (Agnès, 16/5/2005 15h, Louvre)
    ...

    "- Une FDM ne peut pas etre à un meme moment à plusieur endroit"?

    Oui ça marche car :
    nettoyer (Jeanne, 16/5/2005 15h, Louvre)
    nettoyer (Jeanne, 16/5/2005 15h, Elysée)
    pas possible du fait de la clé sur la paire

    PS. Salut Dominique!

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2006
    Messages : 23
    Points : 17
    Points
    17
    Par défaut
    Ok
    Bon bin maintenant que ca s'est réglé, je vais créé la BDD et codé...

    En tout cas, merci bien pour votre aide

    PS: encor 2 petites question au sujet de PowerAMC:
    Comment fait on pour representé les DF dans le MCD?
    Es ce que PowerAMC est fiable pour generé une base de donnée mysql?

  13. #13
    Membre confirmé

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 113
    Points : 488
    Points
    488
    Par défaut
    Désolé. Mais ta solution certes fonctionne correctement au niveau logique,
    mais je persiste à dire que c'est la modélisation conceptuelle que j'ai proposée qui est la plus pertinente par rapport au problème posé .

    Je fais simplement remarquer qu'au niveau logique, ma solution devient
    LIEU(id_lieu, nom, ...)
    FDM (id_fdm, nom, ...)
    INTERVENTION (id_fdm, id_lieu, date, durée, ...)

    et que je ne m'intéresse pas d'une table Moment !

    Un MCD c'est pour mettre en évidence les concepts métiers et non pour faire du pré-MLD; sinon, on fait directement un MLD !
    Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément.
    L'Art poétique - Nicolas Boileau (1636-1711)

  14. #14
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Nanci, ta modélisation permet à une femme de ménage d'être à plusieurs endroits à la même date (et heure), il me semble que :
    INTERVENTION (id_fdm, date, id_lieu, durée, ...) serait plus appropriée puisqu'elle met en évidence la DF (id_fdm, date) --> id_lieu
    Images attachées Images attachées  
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2006
    Messages : 23
    Points : 17
    Points
    17
    Par défaut
    Citation Envoyé par Nanci
    Désolé. Mais ta solution certes fonctionne correctement au niveau logique,
    mais je persiste à dire que c'est la modélisation conceptuelle que j'ai proposée qui est la plus pertinente par rapport au problème posé .

    Je fais simplement remarquer qu'au niveau logique, ma solution devient
    LIEU(id_lieu, nom, ...)
    FDM (id_fdm, nom, ...)
    INTERVENTION (id_fdm, id_lieu, date, durée, ...)

    et que je ne m'intéresse pas d'une table Moment !

    Un MCD c'est pour mettre en évidence les concepts métiers et non pour faire du pré-MLD; sinon, on fait directement un MLD !
    Dit moi si je me trompe:

    Ta solution est peut etre bonne, mais dans mon cas (je ne l'avais pas precisé, C vrai!!!) je supose qu'une femme de menage travail 8h par jour et qu'elle a qu'une intervention par jour. Donc j'ai juste besoin de gére une date.

  16. #16
    Membre confirmé

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 113
    Points : 488
    Points
    488
    Par défaut
    Et bien c'est tout simple....
    Si la FdM n'intervient qu'une fois par jour, elle n'intervient que dans un seul lieu ce jour là ! Donc le Lieu n'est plus un élément d'identification de l'intervention.
    Dans mon modèle, la relation "par" n'est plus alors en identification relative et dans le MLD, id_lieu devient une simple clé étrangère dans Intervention (le reste ne change pas)

    Quand je dis qu'un bon MCD est plus clair pour comprendre .....
    Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément.
    L'Art poétique - Nicolas Boileau (1636-1711)

  17. #17
    Membre averti Avatar de Soutou
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    328
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 328
    Points : 378
    Points
    378
    Par défaut
    Pour PowerAMC je ne sais pas si on peut représenter une contrainte au niveau conceptuel. Je ne l'ai pas encore évalué.
    Pour la génération de script MySQL ça doit rouler comme un skate bien huilé.
    Bye

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

Discussions similaires

  1. [MCD] Probleme de comprehension avec la cardinalite 0,1
    Par Raiden1234 dans le forum Schéma
    Réponses: 6
    Dernier message: 13/05/2008, 14h39
  2. problem de cardinalités en diagramme de classe
    Par djsito1 dans le forum Diagrammes de Classes
    Réponses: 15
    Dernier message: 11/06/2007, 17h07
  3. problem de cardinalité en mcd
    Par djsito1 dans le forum Schéma
    Réponses: 4
    Dernier message: 08/06/2007, 22h59
  4. [MCD]Probleme pour l'archivage
    Par titof90 dans le forum Modélisation
    Réponses: 2
    Dernier message: 03/05/2007, 11h44
  5. Probleme de cardinalité dans mon mcd/mpd
    Par bluecurve dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/03/2006, 09h12

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