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 :

[AC-2007] relation reflexive sous Access


Sujet :

Modélisation

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 8
    Points : 5
    Points
    5
    Par défaut [AC-2007] relation reflexive sous Access
    Bonjour, cette question a été posée de nombreuses fois, mais j'ai trouvé plusieurs réponses différentes :

    comment représenter une relation réflexive sous Access ?

    La FAQ Merise et Modélisation de données précise qu'il faut nécessairement dédoubler les tables (lien), c'est-à-dire nécessairement mettre une table de liaison ?

    Sur internet, j'ai trouvé ce tuto, et pour une relation (0,1 - 0,N), il n'y a pas de table de jonction (lien).

    Les réponses sur le forum sont diverses pour une association de type (0,1 - 0,N) : avec une table de jonction (lien) ou sans (lien).

    Est-ce que plusieurs solutions sont valables ou est-ce qu'il faut toujours une table de jonction sous Access ? même pour représenter une association réflexive avec les cardinalités (0,1 - 0,N) ?

    Merci de m'éclairer

  2. #2
    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.

    Habituellement on utilise les tables d'association pour matérialiser des relations N-N mais rien n'interdit de s'en servir pour une relation de type 1 à N.

    Quand on a une relation 1-N la table d'association n'est pas vraiment utile et peut ajouter de la complexité au modèle de données sans gain particulier.
    Aussi, l'importation de la clef étrangère garantie par conception qu'on aura toujours une relation 1 à N.

    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.

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Je connais bien le principe en théorie, mais la FAQ précise que cette modélisation n'est pas supportée par access, qu'il faut dédoubler les tables. Est-ce qu'il faut nécessairement une table de jonction pour représenter une relation réflexive 1-N (dans Access, par en théorie) ?

  4. #4
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 600
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 600
    Points : 56 698
    Points
    56 698
    Billets dans le blog
    40
    Par défaut
    Bonjour,

    Dans la théorie relationnelle, le Null doit être à bannir dans les tables.

    Quand le MCD est : A----0,1---associer----0,n----B, on devrait avoir dans la fenêtre des relations d'Access : TblA-1-----1-TblAssocier-∞----1-TblB

    Si au lieu de cela tu fais : TblaA-∞------1-TblB, la clé étrangère dans TblA peut être à Null, ce qui est proscrit en théorie et en pratique pour tout un tas de raisons. Voir dans les discussions de fsmrel dans ton lien.

    Maintenant il y a la théorie, la pratique, et le cas d'Access : construction de l'IHM avec une table de jonction en plus et un gain peu évident à coller à la théorie pour une petite base de données. Ceux qui n'adoptent pas de table de jonction, tolèrent la présence de Null dans les tables mais les conséquences, s'il y en a, ne sont jamais connues

  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
    Je connais bien le principe en théorie, mais la FAQ précise que cette modélisation n'est pas supportée par access, qu'il faut dédoubler les tables. Est-ce qu'il faut nécessairement une table de jonction pour représenter une relation réflexive 1-N (dans Access, par en théorie) ?
    Je l'ai fait plusieurs fois et cela marche très bien mais comme l'a mentionné f-leb il faut faire attention aux Null mais de toute façon en Access il faut TOUJOURS faire attention aux Nulls.

    Pour une relation réflexive je n'ai jamais qu'une seule table qui est en relation avec elle-même. Dans la fenêtre des relations on voit alors NomTable et NomTable_1.

    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
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Ok, si j'ai bien compris, les deux solutions sont possibles mais sans tables de jonction on peut avoir des valeurs nulles. Donc il faut choisir entre tolérer les valeurs nulles, ou pas.

  7. #7
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 600
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 600
    Points : 56 698
    Points
    56 698
    Billets dans le blog
    40
    Par défaut
    Le problème avec cette table de jonction supplémentaire, c'est que la moindre construction de liste déroulante dans un formulaire devient vite galère.

    Tu vas donc probablement "tolérer" la présence du Null, sans trop de conséquences sur les performances si tes tables ne se transforment pas en montagnes de gruyère (grandes tables avec tout plein de Null).
    Et tu gardes à l'esprit que tu as des champs à Null qui peuvent à tout moment fiche la pagaille dans les traitements, les requêtes, etc.

  8. #8
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Oui effectivement je suis en train de revoir une fois pour toute la structure mais j'ai déjà commencé à voir les formulaires :
    tutos pour apprendre à les faire, intérêt des différentes propriétés, utilité des requêtes dans les formulaires et premiers problèmes...
    Je galère un peu ^^

    Effectivement dans certains cas j'ai des tables de jonction, ce qui n'est pas évident, mais si j'ai bien compris, on peut baser le formulaire sur une requête, au lieu de le baser sur une table et d'y ajouter des contrôles pour d'autres tables. Dans ce cas est-ce si difficile d'avoir des tables de jonction?

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

Discussions similaires

  1. [AC-2003] Relation ternaire sous Access
    Par Jojo____ dans le forum Modélisation
    Réponses: 3
    Dernier message: 11/04/2012, 16h12
  2. Imprimante sous Access 2007
    Par texas2607 dans le forum Access
    Réponses: 6
    Dernier message: 02/08/2007, 10h57
  3. Probleme de création nouvelle base sous ACCESS 2007
    Par choco95 dans le forum Sécurité
    Réponses: 3
    Dernier message: 10/07/2007, 08h09
  4. Réponses: 5
    Dernier message: 29/03/2007, 16h00
  5. Pourquoi développez vous sous Access 2007 encore en beta ?
    Par Lou Pitchoun dans le forum Sondages et Débats
    Réponses: 22
    Dernier message: 25/01/2007, 12h12

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