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

Modélisation Discussion :

Indécis par rapport à l'imbrication de tables [AC-2010]


Sujet :

Modélisation

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Août 2019
    Messages : 15
    Points : 17
    Points
    17
    Par défaut Indécis par rapport à l'imbrication de tables
    Bonjour tout le monde,

    Je suis tout nouveau en Access. Je dois réaliser une base de données où les éléments semblent a priori être imbriqués.

    Il faut que je mette en relations les composantes ci-dessous:

    a) Une quinzaine d’éléments A qui possède chacun une quinzaine d’éléments B.
    b) Chacun de mes éléments B possède entre 1 à 10 éléments C.
    c) Chacun de mes éléments C a entre 1 et 5 éléments D.
    d) Je mettrai ensuite plusieurs informations quelconques dans mes éléments D.

    Auriez-vous des idées sur comment établir les relations entre chacun de mes éléments A, B, C et D ?

    Merci de votre aide.
    N.-B. J’utilise Access 2010

    -Snely

  2. #2
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Salut
    Dans B il y a des tuples de A, donc A est clé étrangère dans B
    Dans C il y a des tuples de B, ...
    Dans D il y a des tuples de C, ...
    Un peu de lecture ici.
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  3. #3
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Est-ce que ton nombre d'imbrication est constant (toujours 4) ou peut varier (plus de 4, voir l'infini) ?
    Comment vas-tu exploiter ces données ? En faisant une recherche par niveau ? En présentant tes données dans un arbre ? Autrement ?

    Sache que le SQL de Access ne permet pas la récursion et que si tu l'envisages, il faut tout faire par VBA ce qui est assez lent.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Août 2019
    Messages : 15
    Points : 17
    Points
    17
    Par défaut
    Citation Envoyé par marot_r Voir le message
    Bonjour.

    Est-ce que ton nombre d'imbrication est constant (toujours 4) ou peut varier (plus de 4, voir l'infini) ?
    Comment vas-tu exploiter ces données ? En faisant une recherche par niveau ? En présentant tes données dans un arbre ? Autrement ?

    Sache que le SQL de Access ne permet pas la récursion et que si tu l'envisages, il faut tout faire par VBA ce qui est assez lent.

    A+
    Bonjour.

    Ce que je sais, c'est que l'élément central de la base de données est mon élément D.
    Ainsi, je ferai en effet mes recherches par niveau pour arriver au D.

    Mes niveau étant A, B et C ----de sorte que----> Lorsque je recherche A, j'ai accès à tout les B qui appartiennent au A, puis tout les C qui appartiennent au B pour finalement se rendre à D avec mes C.

    Mon imbrication peut varier, oui. Je pourrais avoir des informations E rattachées à un de mes D.
    Voyez-vous l'effet poupée russe ?

    AId--------BId---------CId--------DId--------EId
    ANom-----BNom -----CNom -----DNom-----ENom
    ------------ARéf.-------BRéf.------CRéf.------DRéf.

    Je pensais à une relation un-à-plusieurs entre mes mes ID et mes Réf.
    Est-ce que je me complique la vie ? Devrais-je plutôt relié tout mes éléments à D directement sans passer par B ou C ?

    Sinon, je ne sais pas comment présenter mes données dans un arbre... Je pensais plutôt afficher mes éléments à l'aide d'états et requêtes.

    Merci de votre aide, c'est apprécié.

    -Snely

  5. #5
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Avec un nombre de niveaux variables, la seule structure vraiment adaptée est une relation récursive.

    Ici un exemple :

    tblDonnees
    ClefDonnees
    ClefDonneesParent
    Autres infos.

    Dans les relations tu ajoutes tblDonnees 2 fois et tu relies tblDonnees.[Clef] à tblDonnees _1.[ClefParent].

    Cette structure est malheureusement assez difficile à exploiter avec du SQL donc avec les outils intégrés de Access.

    Je te suggères les architectures alternatives suivantes.

    Si tu peux définir un nombre maximum d'imbrications, alors tu pourrais utiliser ceci :

    tblElement
    ClefElement
    Autres infos.

    tblHierarchie
    ClefHierarchie
    ClefElement_01
    ClefElement_02
    ClefElement_03
    ... Et ainsi de suite jusqu'au niveau Max d'imbrication (ex : 10).

    Dans la fenêtre relation, tu ajoute autant de tblElement que tu as de niveau et tu fait des relations de chacune des tables sur le champ ClefElement_xx correspondant.

    L'avantage de cette architecture c'est que tu as directement ta hiérarchie dans tes données.
    L'inconvénient c'est que déplacer des infos d'un niveau à un autre peut être pénible.

    Une autre option est d'avoir :

    tblElement
    ClefElement
    Autres infos

    tblAssParentEnfant
    ClefParentEnfant
    ClefElement_Parent
    ClefElement_Enfant
    Niveau

    Cette structure te permet de faire des requêtes "par niveau" et donc assez facilement de présenter tes dépendances sous forme d'escalier.
    Niveau est entré "à la main" au moment de la saisie.
    Déplacer un élément d'un niveau est aussi plus facile que dans la précédente.

    Si on ne se sert pas de Niveau, on peut le calculer par VBA mais comme je l'ai dit précédemment, C'EST LENT !!!.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Août 2019
    Messages : 15
    Points : 17
    Points
    17
    Par défaut
    Bonjour,

    Merci pour les alternatives !

    Je mets en résolu.

    ______________________
    Bonne journée.
    -Snely

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

Discussions similaires

  1. Texte centré par rapport à une image (sans table)
    Par devyan dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 13/12/2008, 20h10
  2. Réponses: 1
    Dernier message: 29/09/2007, 17h47
  3. Réponses: 7
    Dernier message: 12/07/2006, 17h34
  4. Réponses: 2
    Dernier message: 12/05/2006, 08h27
  5. Réponses: 6
    Dernier message: 28/12/2004, 16h09

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