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 :

Comment créer une relation d'héritage dans Access


Sujet :

Schéma

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 13
    Points : 7
    Points
    7
    Par défaut Comment créer une relation d'héritage dans Access
    Bonjour à tous,

    J'espère que je ne poste pas dans la mauvaise section, si c'est le cas, je vous prie d'avance de bien vouloir m'en excuser.

    Ma démarche de créer ce topic est en vue d'un devoir très important pour ma licence que je dois rendre fin du mois et qui en soit n'est pas des plus complexes.
    Je ressens par contre quelques doutes au moment de passer du modèle conceptuel à la modélisation sous ACCESS.
    Je vous joins de suite le MCD et je détaille mes questions dans l'espoir que vous accepterez de m'apporter de l'aide afin de me "sauver la vie" ^^" :


    Comme vous pouvez le constater, c'est très... laid
    En fait, c'est un schéma que nous a transmis notre professeur qui n'était déjà pas très lisible après de nombreuses photocopies, mais qui l'est encore moins une fois que je le scan, ainsi j'ai choisi de repasser sur les traits, mais étant un peu pressé je n'ai point utilisé de règle/compas et j'espère que ça ne vous retiendra pas pour m'aider à résoudre mon problème, c'est très lisible, mais malheureusement ce n'est pas propre.

    J'en viens donc à mon problème majeur qui en fait se situe au niveau de l'héritage autour de l'entité SALARIE.

    Même si j'ai suivi des cours me permettant d'établir un MRD, je suis incapable à l'heure actuelle de trouver la solution quant à la façon de modéliser tout cela sur ACCESS :/
    J'ai cherché autant que je pouvais sur le Forum et je n'ai trouvé réponse à mon problème ou solution s'en approchant, peut-être ai-je mal cherché et je vous prie de m'en excuser à nouveau.
    Je suppose que 3 entités (SUPERVISEUR, SALARIE et OPERATEUR) doivent être créées, mais je n'ai aucune idée de comment les relier si tel est le cas...
    Je n'ai encore jamais développé sous ACCESS les contraintes (ici de partition) et malheureusement, mon cours étant fini en informatique je ne peux questionner mon professeur (très pratique me direz-vous) et je désespère un peu

    Ensuite, pouvez-vous me confirmer qu'en ce qui concerne l'identifiant relatif, il me suffit de mettre en clé primaire en plus de l'identifiant de l'entité PRODUIT, l'identifiant de l'entité LIGNE_PRODUIT, je pense avoir juste et cette question pourra vous sembler bête, mais le doute étant présent...

    Je vous remercie d'avance si vous acceptez de m'apporter votre aide si précieuse à l'heure actuelle à mes yeux et si sans vouloir abuser vous pouviez être clair dans votre réponse afin que je ne vous ennuie pas trop étant donné que parfois il n'est pas aisé de comprendre ce qui est simple pour d'autres =)

    Cordialement,

    Marounda

  2. #2
    Membre expert
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Points : 3 103
    Points
    3 103
    Par défaut
    Bonjour,

    Je suppose que 3 entités (SUPERVISEUR, SALARIE et OPERATEUR) doivent être créées, mais je n'ai aucune idée de comment les relier si tel est le cas...
    C'est une question qui est abondamment débattue sur ce forum. Une recherche devrait t'éclairer. Par exemple :
    Methode merise : heritage
    relation 0,1 - 0,1
    [MEA] Traduire l'héritage conceptuel en script BDD
    Je n'ai encore jamais développé sous ACCESS les contraintes (ici de partition)
    Là par contre je pense que tu vas avoir un soucis. (A moins que ta base ne soit une base MSDE ?). A ma connaissance Jet ne permet pas de créer de Trigger. Tu as cette solution proposée par Soutou.
    Dans users tu mets les 2 clés étrangères
    USERS (user_id, ... business_id#, artist_id#)
    il faut ensuite ajouter avec ALTER TABLE la contrainte
    CHECK ((business_id IS NULL AND artist_id IS NOT NULL)
    OR
    (business_id IS NOT NULL AND artist_id IS NULL))
    ainsi chaque users est soit business soit artiste
    Si tu laisse la possibilité qu'un user ne soit ni l'un ni l'autre il faudra
    ajouter : OR (business_id IS NULL AND artist_id IS NULL)
    Sinon il te reste à le gérer au niveau applicatif. Tu peux aussi demander l'avis des pro d'access ici : Access

    pouvez-vous me confirmer qu'en ce qui concerne l'identifiant relatif, il me suffit de mettre en clé primaire en plus de l'identifiant de l'entité PRODUIT, l'identifiant de l'entité LIGNE_PRODUIT
    Si tu parles de la table ''ligne_produit'' la réponse est oui. La PK sera composée de la FK de ''produit'' (Noprod) et de RefLigProd.

    PS : si tu pouvais réduire un peu la taille de tes schémas pour que ça soit plus lisible se serait parfait.

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 888
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 888
    Points : 53 121
    Points
    53 121
    Billets dans le blog
    6
    Par défaut
    Lisez l'article que j'ai écrit à ce sujet :
    http://sqlpro.developpez.com/cours/m...tion/heritage/

    A +

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    (Merci d'avoir déplacé/renommé mon topic, j'avoue ne pas être expert de votre Forum encore ^_^ J'ai également modifié la taille de mes images qui en fait était bien trop grandes comme demandé.)

    J'ai lu vos réponses attentivement et j'avoue que la première me met un peu dans le flou, je suis débutant on peut dire sur ACCESS vu mon manque d'expérience pratique et même si vos réponses tendent vers mon hypothèse de créer plusieurs tables sous ce logiciel, je continue de bloquer au moment de la réalisation des liens entre les tables.
    Peut-être comme conseillé ci-dessus, devrais-je demander dans la section réservée à ACCESS, étant donné que ce logiciel peut sembler précaire pour des utilisateurs de logiciels plus professionnels.
    En fait mon soucis est surement évident à vos yeux, les miens sont encore un peu brouillés
    Je vais tenter de reprendre tout ça à tête reposée et continuerai de lire ce topic si quelqu'un souhaite ajouter sa pierre à mon édifice =)
    Merci encore pour vos réponses.

    Cordialement,

    Marounda

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Après avoir discuté un peu avec un camarade, j'ai eu un conseil auquel j'aurais aimé si possible avoir une confirmation de votre part afin de pouvoir terminer mon projet. Le reste n'est pas très compliqué à mes yeux =)
    Je vous joins un screen montrant la réalisation finale de mes relations :

    Je retire une relation sur celui-ci pour qu'on voit un peu mieux ce que j'ai fait autour de mon entité SALARIE :

    Une personne confirmée pourrait m'expliquer si le rendu en fonction de mon MCD serait correct ? Même si je sais que vous penserez surement que d'autres détails doivent être pris en compte.
    Je vais détailler brièvement comment j'ai procédé afin que vous puissiez me dire plus facilement si ma démarche était mauvaise, et si elle est bonne, et bien je serai ravis que ça aide Loan26 par la même occasion.

    J'ai mit dans les entités SUPERVISEUR et OPERATEUR les données qui ne correspondaient qu'à elles ainsi que la clef primaire NroSal qui est leur.
    Ensuite, au moment de la création des relations, je n'ai pas appliqué l'intégralité référentielle, puis je suis allé dans les options de jointure et j'ai choisi la seconde option, en voici un screen :


    J'ai un autre petit soucis au niveau de la cardinalité (4,4) au bornes de l'entité POSTE_TRAVAIL qui est reliée à HABILITATION par le biais de l'association "Comprend", dois-je configurer quelque chose de façon précise ou sur ACCESS cela ne pose pas trop de soucis ? J'avoue ne pas trop savoir dans quel direction me lancée, j'opterais bien pour cette relation :


    Bon, pour finir mon "flood" d'images, je joins cette dernière afin de montrer le résultat final au niveau des relations qui m'ennuient tant =) En espérant que vous ne trouviez pas ceci trop fouilli ^^"


    Je vous remercie à nouveau d'avance de prendre un peu de temps afin de me confirmer si ma démarche est bonne, et j'espère que si c'est le cas, que cela puisse servir à d'autres confrères qui sont bloqués.

    Bonne continuation à tous.

    Cordialement,

    Marounda

Discussions similaires

  1. Réponses: 4
    Dernier message: 04/01/2008, 14h06
  2. Réponses: 6
    Dernier message: 23/12/2007, 14h06
  3. Comment inserer une date en ASP dans Access?
    Par denis907 dans le forum ASP
    Réponses: 13
    Dernier message: 25/07/2007, 13h38
  4. Comment créer une base de donnée dans un fichier .txt
    Par vantoff dans le forum C++Builder
    Réponses: 9
    Dernier message: 19/07/2006, 19h44
  5. Réponses: 1
    Dernier message: 29/05/2006, 18h42

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