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

Merise Discussion :

Merise problème relation


Sujet :

Merise

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2011
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 25
    Points : 18
    Points
    18
    Par défaut Merise problème relation
    Bonjour tout le monde,

    Voila j'ai un petit problème avec un schéma que j'ai réalisé à l'aide de la méthode Merise.

    En effet, lors de la construction des tables, je me rends compte que je ne peux pas créer les tables "personnel formé" et "non formé" car elles ont en clé étrangère id du service et vice versa pour la table Service.

    Y a-t-il un problème dans mon schéma ?

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 247
    Points : 12 883
    Points
    12 883
    Par défaut
    Bonjour,
    Citation Envoyé par bigbob195 Voir le message
    Y a t il un problème dans mon schéma ?
    A part le fait qu'il soit bourré de fautes ?
    Je ne comprends pas pourquoi tu as deux tables: "personnel formé" et "personnel non formé". Une table avec une colonne formé de type booléen ne suffirait-elle pas ?

    Tatayo.

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2011
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 25
    Points : 18
    Points
    18
    Par défaut
    Bourré de fautes d’orthographe tu veux dire ?

    Je peux effectivement ne pas différentier le personnel (quoi que le reste du MCD m'en empêche peut-être). Quoiqu'il en soit, un membre du personnel formé de type 1 doit être co-responsable d'un service avec un membre du personnel non formé de type 3.
    Aussi, chaque membre du personnel formé de type 1 appartient à un et un seul service.

    Ce qui fait 3 jointures entre personnel et service si je ne fais pas erreur et qui revient au même problème avec des clés étrangères de chaque côté, ce qui me pose problème pour créer les tables.

  4. #4
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    Pour créer vos tables, il faut en créer une sans la contrainte d'intégrité référentielle, puis créer la deuxième avec la CIR, puis ajouter la CIR à la première.

    Vous aurez également des problèmes lors de l'insertion : Si votre SGBDR (quel est-il) supporte les contraintes déferrées, utilisez-les, sinon prévoyez une solution de contournement.

    Cependant, il me semble qu'il vous faudrait un héritage pour les tables personnel, quelles sont les propriétés respectives des employés formés et des employés non formés ?

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2011
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 25
    Points : 18
    Points
    18
    Par défaut
    La création de table sans CIR est-elle normale ou indique-t-elle un problème dans la conception ?

    En ce qui concerne mes entités "personnel formé" et "non formé", elles sont en fait classes filles de l'entité Personnel.
    Les deux classes filles n'ont pas de propriétés respectives mais le problème est que les formés réalisent des opérations (opération qui est une entité) que le personnel non formé ne peux faire.

  6. #6
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Citation Envoyé par bigbob195 Voir le message
    La création de table sans CIR est elle normal ou indique tel un problème dans la conception ?
    Au final, chaque table a bien sa CIR. C'est juste pour la création qu'il faut procéder en plusieurs étapes. Donc non, cela n'indique pas un problème de modélisation.

    En ce qui concerne mes entités personnel formé et non formé elle sont enfaite classe fille de l'entité Personnel.
    Les deux classes fille n'ont pas de propriétés respectives mais le problème est que les formés réalisent des opérations (opération qui est une entité) que le personnel non formé ne peux faire.
    Vous aurez donc trois tables :
    PERSONNEL
    PERSONNEL_FORME
    PERSONNEL_NON_FORME

    Est-ce cela ? Cet héritage n'apparait pas dans votre MCD !

  7. #7
    Membre à l'essai
    Inscrit en
    Mars 2011
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 25
    Points : 18
    Points
    18
    Par défaut
    Ci dessous un partie plus importante du MCD


  8. #8
    Membre à l'essai
    Inscrit en
    Mars 2011
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 25
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par aieeeuuuuu Voir le message
    Est-ce cela ? Cet héritage n'apparait pas dans votre MCD !
    Il manque encore des tables je c'est surtout cette partie qui me pose probleme

  9. #9
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 112
    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 112
    Points : 31 585
    Points
    31 585
    Billets dans le blog
    16
    Par défaut
    Bonjour,


    Bigbob, seriez-vous aux prises avec le problème de l’œuf et de la poule ?

    Comme dit aieeeuuuuu :

    « Si votre SGBDR (quel est-il) supporte les contraintes déferrées , utilisez-les, sinon prévoyez une solution de contournement »

    S'il faut contourner et se dépêtrer d’un cycle, on peut passer par la mise en oeuvre d'une table s’association entre les tables PERSONNE_FORMEE et SERVICE :



    Supposons maintenant que vous créiez les personnes avant les services : pour être sûr qu’au moment où vous créerez un service, celui-ci ne reste pas orphelin de directeur de type « personne formée », un trigger appliqué à la table SERVICE insérera en même temps la ligne qui va bien dans la table DIRECTION. Un autre trigger veillera à ce qu’une instruction DELETE ne rende pas un service orphelin.

Discussions similaires

  1. [phpMyAdmin] Problème relation entre tables
    Par momo0409 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 14/09/2007, 15h04
  2. Problème relation entre champs
    Par Zinemon dans le forum IHM
    Réponses: 1
    Dernier message: 14/06/2007, 14h55
  3. Réponses: 7
    Dernier message: 21/01/2007, 12h12
  4. Merise et relation ,SQL
    Par Ice-tea dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 14/06/2006, 13h46
  5. Réponses: 4
    Dernier message: 14/09/2005, 16h29

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