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

SQL Procédural MySQL Discussion :

Comment faire pour une table qui doit pointer sur plusieurs clés étrangères


Sujet :

SQL Procédural MySQL

  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 : 49
    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 Comment faire pour une table qui doit pointer sur plusieurs clés étrangères
    Bonjour tout le monde,

    J'ai une base de données composée de deux tables.

    Table 1 : Article : Nom, Numéro...
    Table 2 : Auteurs

    La difficulté est qu'un article peut être écrit par plusieurs auteurs.

    Sauriez-vous me dire comment je pourrais m'y prendre pour la réalisation de cette base ?

    Merci d'avance pour votre aide.

    beegees

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 036
    Points : 23 782
    Points
    23 782
    Par défaut
    Bonjour,

    C'est un cas classique de modélisation : la relation N-N. Un auteur peut avoir plusieurs articles à son actif, et un article plusieurs auteurs.
    Il te faut faire une table de passage entre article et auteur, qui contient les id des articles et les id des auteurs.
    Pour un même article, tu auras plusieurs lignes avec l'id de l'article et l'id de l'auteur sur chacune.
    Cette table te permettra aussi de retrouver les contributions d'un auteur, en faisant une recherche par id d'auteur.

    ced

  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 : 49
    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 ced Voir le message
    Bonjour,

    C'est un cas classique de modélisation : la
    Merci Ced.

    Je vais relire attentivement ton message et faire sur base de ce message une recherche sur le net.

    Merci encore pour cete piste.

    beegees

  4. #4
    Expert confirmé

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Points : 4 327
    Points
    4 327
    Par défaut
    Comme dis ceb, la modélisation gagnerais a être différente.
    Au niveau de ton MLD ça donnerais ça :

    Article(numero, nom, ...)
    Auteur(id, nom, pnom, ...)
    Ecrire(#numeroArticle, #idAuteur)

    Je pense que la modélisation merisienne t'aiderais a t'améliorer :http://merise.developpez.com/

  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 : 49
    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 kazou Voir le message
    Comme dis ceb, la modélisation gagnerais a être différente.
    Au niveau de ton MLD ça donnerais ça :

    Article(numero, nom, ...)
    Auteur(id, nom, pnom, ...)
    Ecrire(#numeroArticle, #idAuteur)

    Je pense que la modélisation merisienne t'aiderais a t'améliorer :http://merise.developpez.com/
    +

    Bonjour Kazou,

    Merci pour ta réponse.

    Je présûme que #numeroArticle et #idAuteur sont des clés étrangères des deux premières tables ?

    Dans la table intermédiaire, y'aura t'il des doublons d'informations ?

    Merci encore et aussi pour le lien

    beegees

  6. #6
    Expert confirmé

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Points : 4 327
    Points
    4 327
    Par défaut
    oui les # signifient qu'il s'agit de clé étrangères.

    Des doublons non, tu aura des couples d'informations.
    La clé primaire étant composé de deux champ, tant que les deux ne sont pas identiques, il n'y a pas de doublons.

  7. #7
    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 : 49
    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 kazou Voir le message
    oui les # signifient qu'il s'agit de clé étrangères.

    Des doublons non, tu aura des couples d'informations.
    La clé primaire étant composé de deux champ, tant que les deux ne sont pas identiques, il n'y a pas de doublons.
    Re,

    Merci beaucoup pour ces informations importantes.

    Je te tiens au courrant pour le reste.

    Merci encore.

    beegees

  8. #8
    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 : 49
    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 kazou Voir le message
    oui les # signifient qu'il s'agit de clé étrangères.

    Des doublons non, tu aura des couples d'informations.
    La clé primaire étant composé de deux champ, tant que les deux ne sont pas identiques, il n'y a pas de doublons.
    Excuse-moi mais j'ai un petit doute.

    Tu dis "un couple d'information" mais mon information devrait être du genre :

    Nom Article : La situtation de Merise en 2008 Auteurs : ID 1,2,6

    Il faudrait donc que j'ai trois lignes différentes qui reprennent le clé primaire de Article (son nom) et l'ID de l'auteur du genre :

    1) La situtation de Merise en 2008 --- 1
    2) La situtation de Merise en 2008 --- 2
    3) La situtation de Merise en 2008 --- 6

    ou 1) La situtation de Merise en 2008 --- 1,2,6

    Merci encore pour ton aide.

    beegees

  9. #9
    Expert confirmé

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Points : 4 327
    Points
    4 327
    Par défaut
    hum, disons que tu te sert d'un table intermédiaire (comme ced l'as dit) qui te permet d'associer deux identifiants. un de chaque tables.
    Donc ici tu dois associer un id a ton article, et associer seulement les articles.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 02/03/2011, 23h26
  2. [MySQL] comment faire pour créer table et formulaire pour saisie des donnes GPS avec images
    Par kitcarson23 dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 07/09/2010, 10h09
  3. Comment faire pour une interface avec un menu ribbon ? sans onglet
    Par Yogy dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 20/01/2010, 15h58
  4. Réponses: 2
    Dernier message: 28/04/2009, 15h26
  5. lien pour une table qui ne doit pas etre public
    Par raslain dans le forum Oracle
    Réponses: 1
    Dernier message: 12/12/2005, 13h40

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