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 :

problème de gestion d'attributs communs [MCD]


Sujet :

Schéma

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Ingénieur gestion des investissements industriels
    Inscrit en
    Juillet 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur gestion des investissements industriels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5
    Points : 7
    Points
    7
    Par défaut problème de gestion d'attributs communs
    Bonnjour,

    Comme mentionné dans ma présentation, je dois gérer un parc de machine outils, mais je pars de 0 concernant la gestion de base de données. Je me suis documenté sur la méthode Merise que je trouve très intéressante, mais je galère encore un peu pour modéliser ma base de données. J'ai cherché une solution sur le forum, mais je ne suis pas sur de l'avoir trouvé (je pense que ma solution pourrait être apportée par l'héritage, et vous me le confirmerez après la lecture de mon problème, ou me direz que c'est une grosse bêtise et que j'ai encore pas mal de lecture à faire )

    Voici mon problème :
    Je suis en présence d'un certain nombre de machine que l'on peut classer par catégorie, que j'appellerais type (de machine) par la suite : usinage, robot, etc... Chaque type possède ses propres caractéristiques, mais également des caractéristiques communes à tous les types (encombrements, alimentations, prix, localisation, etc...) J'avais imaginé faire une table pour chaque type, qui regrouperait les caractéristiques spécifiques, et une table regroupant les caractéristiques communes.

    J'imagine un MCD comme suit :

    Type_1 -1,1--- Comporte ---1,1- CaracteristiquesCommunes
    Type_2 -1,1--- Comporte ---1,1- CaracteristiquesCommunes
    ...
    Type_n -1,1--- Comporte ---1,1- CaracteristiquesCommunes

    J'imagine un index auto dans la table CaracteristiquesCommunes qui permettrait de faire la relation "Comporte" avec les tables Type_x

    Là où ça se complique dans ma tête, c'est pour faire les requêtes et notamment si je pars de la table CaracteristiquesCommunes. Par exemple, si je veux récupérer les caractéristiques spécifiques des machines se trouvant à une localisation particulière, comment je fais ? Il faut passer en revue toutes les types, faire une jonction (?) pour récupérer la localisation et si c'est celle qui nous intéresse, récupérer les caractéristiques spécifiques ? ça ne me parait pas très simple. J'avais également pensé à mettre une clé secondaire pour chaque type qui "pointerait" faire un enregistrement de CaracteristiquesCommunes, mais je n'arrive pas à le mettre en oeuvre dans Access (on s'éloigne du MCD).

    J'ai lu un problème similaire sur une table avec des clients, des employés et des prospects, où l'on utilisait un héritage. J'ai vraiment l'impression d'être dans ce cas là et je voudrais en avoir confirmation (et si mon MCD est correct)

    J'espère que l'explication est claire et merci par avance pour votre aide.

  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 032
    Points
    34 032
    Billets dans le blog
    14
    Par défaut
    À première vue et après une lecture rapide, l'idée de faire un héritage est la bonne mais ton modèle n'est pas celui d'un héritage de données !

    Ce serait plutôt celui-là qui conviendrait :
    machine_usinage -(1,1)----être----0,1- machine
    robot (1,1)----être----0,1----------------------------|

    Ce qui donnerait les tables suivantes :
    machine (mch_id, mch_localisation, mch_prix, mch_encombrement...)
    machine_usinage (mus_id_machine, [colonnes spécifiques à toutes les machines d'usinage])
    robot (rbt_id_machine, [colonnes spécifiques à tous les robots])
    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
    Futur Membre du Club
    Homme Profil pro
    Ingénieur gestion des investissements industriels
    Inscrit en
    Juillet 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur gestion des investissements industriels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5
    Points : 7
    Points
    7
    Par défaut
    Merci pour la réponse. Le lien que tu proposes est celui que j'avais déjà vu. Je vais prendre le temps de bien comprendre (tout n'est pas encore très clair et je n'arrive pas bien à transposer l'exemple à mon cas).

    De plus, je ne comprend pas la "syntaxe texte" MCD que tu utilises pour l'héritage Je suppose que le fait que les '-' de la deuxième ligne aillent jusque après le mot "machine" de la première ligne a son importance.

    Citation Envoyé par CinePhil Voir le message

    Ce serait plutôt celui-là qui conviendrait :
    machine_usinage -(1,1)----être----0,1- machine
    robot (1,1)----être----0,1----------------------------|
    Est-ce qu'il y a un endroit qui explique comment exprimer le MCD en mode texte ?

    Merci

  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 032
    Points
    34 032
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par Oby1_92 Voir le message
    De plus, je ne comprend pas la "syntaxe texte" MCD que tu utilises pour l'héritage Je suppose que le fait que les '-' de la deuxième ligne aillent jusque après le mot "machine" de la première ligne a son importance.
    Euh...
    Le trait du dessous, formé avec des caractères de soulignement, ne dépasse pas machine mais arrive à peu près au milieu.

    Pour la syntaxe, imagine que machine, machine_usinage et robots figurent chacun dans un rectangle et que les deux être soient chacun dans un ovale. Tu remplaces les ___ par des traits continus et tu retrouvent le dessin habituel des MCD avec un logiciel de modélisation.

    Par convention, que ce soit en mode graphique ou en mode texte, les entités types sont des noms au singulier et les associations sont des verbes à l'infinitif.

    Parlons aussi des cardinalités entre parenthèses qui signifient qu'il y a identification relative de machine_usinage et de robot par rapport à machine, ce qui signifie que machine_usinage et robots n'auront pas d'identifiant propre mais récupéreront l'identifiant hérité de machine.

    Dans les tables (en gras), tu retrouves les clés primaires soulignées et les clés étrangères en italique. Tu constates donc que les clés primaires de machine_usinage et de robots sont également clés étrangères référençant la clé primaire de machine.
    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 confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour à tous,

    Citation Envoyé par Oby1_92
    Est-ce qu'il y a un endroit qui explique comment exprimer le MCD en mode texte ?
    ==> il faut utiliser la balise # (code). Ensuite, le mieux est de créer le schéma dans le bloc-note Windows et de le copier/coller entre les balises sus-nommées.

    Ce qui donne, en l’occurrence (sans parler du fond) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    machine_usinage -(1,1)----être----0,1- machine
    robot (1,1)----être----0,1----------------|
    NB : chez moi aussi (Chrome), dans le post de CinePhil, les tirets dépassent "machine".
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Ingénieur gestion des investissements industriels
    Inscrit en
    Juillet 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur gestion des investissements industriels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5
    Points : 7
    Points
    7
    Par défaut
    Merci pour les explications. C'est plus clair.
    Et merci Richard_35 pour "l'astuce" de la balise #.

    Je passe le sujet en résolu.

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

Discussions similaires

  1. [MCD] [PowerAMC] Gestion des attributs non commun
    Par heretik25 dans le forum Schéma
    Réponses: 5
    Dernier message: 20/01/2012, 17h24
  2. Problème de gestion d'un octree
    Par MaxPayne dans le forum OpenGL
    Réponses: 9
    Dernier message: 06/04/2005, 10h17
  3. problème de gestion de fenêtre
    Par clemsouz dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 03/11/2004, 14h35
  4. Problème de gestion fichiers
    Par glutock dans le forum ASP
    Réponses: 2
    Dernier message: 08/04/2004, 11h55
  5. [TFrame] Problème de gestion du OnMouseDown avec une Frame
    Par xherault dans le forum Composants VCL
    Réponses: 5
    Dernier message: 23/05/2003, 15h35

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