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 :

Principe d'utilisation d'une table intermédiaire pour une relation n à n


Sujet :

Modélisation

  1. #1
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut Principe d'utilisation d'une table intermédiaire pour une relation n à n
    Bonjour tout le monde,

    J'ai deux tables Access :

    Table : Auteurs

    IDAuteur (clé primaire) Nom Prenom
    --------- ------------
    1 Titeuf Gerome
    2 Mathieu Lucie
    3 Sceau Yvan

    Table : Articles

    NomArticle (clé primaire) NbrePages
    -----------------------
    Word 2009 250

    J'ai voulu créer un relation plusieurs à plusieurs en access mais je me suis vite aperçu que ce n'étais pas possible.

    J'ai donc créé une 3e table (intermédiaire) qui reprend les deux clés primaires des deux tables.

    3e table tblIntermediare

    IDAuteur (clé primaire)
    NomArticle (clé primaire)

    J'ai lié la clé primaire de la table Auteur avec la clé primaire de la 3e table (IDAuteur) et j'ai lié la clé primaire de la table Articles avec la clé primaire NomArticle de la 3e table, tout cela avec l'intégrité référentielle.

    Cela me donne le schéma que vous pouvez voir en attaché (est-il correct ?).

    Je ne comprends pas trop bien le principe, dois-je remplir les trois tables ?

    Table Auteur je mets le nom de l'auteur, table Articles je mets l'ID de l'article mais dans la 3e table, dois-mettre l'ID de l'article et le nom de l'auteur ?

    On parle ici de clés étrangères, ne dois-je pas mettre les # ?

    Merci d'avance pour votre aide.

    beegees

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 593
    Points : 34 250
    Points
    34 250
    Par défaut
    salut,
    selon moi, mettre le nom de l'article comme Clé primaire, c'est pas forcément juste, dans le sens où tu peux avoir des articles en double non ?

    d'autre part
    la table intermédiaire te donne la liste des personnes qui "possèdent" l'article et inversement la liste des articles que "possède" une personne.

    Il n'est par contre pas obligatoire qu'une personne "possède" au moins 1 article ni qu'un article ait au moins un "possesseur"...
    Mais à par ca, ca me convient.
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par jpcheck Voir le message
    salut,
    selon moi, mettre le nom de l'article comme Clé primaire, c'est pas forcément juste, dans le sens où tu peux avoir des articles en double non ?

    d'autre part
    la table intermédiaire te donne la liste des personnes qui "possèdent" l'article et inversement la liste des articles que "possède" une personne.

    Il n'est par contre pas obligatoire qu'une personne "possède" au moins 1 article ni qu'un article ait au moins un "possesseur"...
    Mais à par ca, ca me convient.
    Salut, OK pour le nom de la clé primaire, je vais l'a changer.

    Ma question principale est le fait que si j'ajoute un article, je dois écrire dans trois tables, est-ce normal ?


    1) Je dois écrire le nom du nouvel article dans la table article.
    2) je dois aller dans la table Auteur et y indiquer l'auteur si il n'existe pas
    3) je dois aller dans la table intermédiaire et mettre le nom de l'article et le nom de l'auteur.

    Est-ce normal que je dois faire autant de choses ?

    Merci

    beegees

  4. #4
    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
    Oui c'est le prix à payer pour avoir une belle structure ... il faut parfois souffrir pour être beau :-)

    Mais tu peux le faire par programmation si tu saisi directement sur la table d'association (tblIntermediare).

    En utilisant des objets combobox avec la propriété limiter à la liste à vrai, access déclenche un évément qui te permets d'ajouter l'élément manquant dans la table de référence.

    Je pense que ceci est traité dans la FAQ fait une recherche sur NotInList.

    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.

  5. #5
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Merci beaucoup Marot pour ta réponse.

    Je suis soulagé de lire que s'est normal que je dois compléter plusieurs tables.

    Merci encore.

    beegees

Discussions similaires

  1. créer une table utilisateurs pour une BD ?
    Par DBA_OCP dans le forum Administration
    Réponses: 12
    Dernier message: 03/06/2009, 15h18
  2. Réponses: 4
    Dernier message: 02/06/2009, 17h09
  3. Réponses: 3
    Dernier message: 04/06/2008, 10h19
  4. Retourner une colonne même pour une table vide
    Par The eye dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 28/03/2008, 18h58
  5. copie d'une table Y d'une base A vers une table X d'une base
    Par moneyboss dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 30/08/2005, 21h24

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