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 :

table association ou cle etrangere [MCD]


Sujet :

Schéma

  1. #1
    Membre habitué Avatar de horkets
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    326
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 326
    Points : 138
    Points
    138
    Par défaut table association ou cle etrangere
    Bonjour à tous,

    J'ai une table personne et une table langue

    personne 1,1 ----- parler ------ 0,N langue

    Question 1: par rapport à ce qui precede
    Est ce qu'il est préférable d'utiliser une clef étrangere dans personne liée à l'id de la langue,
    ou
    est il préférable de créer une table associative reprenant l'id de la personne ET l'id de la langue ?

    Question 2: de façon plus générale
    Quel est la logique à suivre par rapport aux cas de figure suivants ?
    1,* = clef etrangere vers autre entité - ou - table associative ?
    0,* = clef etrangere vers autre entité - ou - table associative ?
    1,1 = clef etrangere vers autre entité - ou - table associative ?

    En espérant avoir été assez clair,

    Merci d'avance pour votre aide
    24 hours a day ... never enough

  2. #2
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2005
    Messages
    1 473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 473
    Points : 3 283
    Points
    3 283
    Par défaut
    Citation Envoyé par horkets Voir le message
    ...

    J'ai une table personne et une table langue

    personne 1,1 ----- parler ------ 0,N langue

    Question 1: par rapport à ce qui precede
    Est ce qu'il est préférable d'utiliser une clef étrangere dans personne liée à l'id de la langue,
    ou
    est il préférable de créer une table associative reprenant l'id de la personne ET l'id de la langue ?
    Vu qu'une personne peut parler plusieurs langues et à moins de "violer" la première forme normale, c'est bien évidemment la table associative qu'il faut choisir ...

  3. #3
    Membre actif Avatar de SmileSoft
    Inscrit en
    Mars 2008
    Messages
    436
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 436
    Points : 214
    Points
    214
    Par défaut
    Citation Envoyé par horkets Voir le message

    J'ai une table personne et une table langue

    personne 1,1 ----- parler ------ 0,N langue

    Question 1: par rapport à ce qui precede
    Est ce qu'il est préférable d'utiliser une clef étrangere dans personne liée à l'id de la langue,
    oui


    1,* = clef etrangere vers autre entité - ou - table associative ?
    0,* = clef etrangere vers autre entité - ou - table associative ?
    clé étrangère si l'autre coté de l'association est 0.* / 1.1 et associative si l'autre coté est 0.* / 1.*


    1,1 = clef etrangere vers autre entité - ou - table associative ?
    étrangère si l'autre coté de l'association est 0.1 et ne pourra pas être associative

    Citation Envoyé par Luc Orient Voir le message
    Vu qu'une personne peut parler plusieurs langues et à moins de "violer" la première forme normale, c'est bien évidemment la table associative qu'il faut choisir ...
    dans ce cas là il doit changer les cardinalités de la relation et ça devras être
    personne 1,n----- parler ------ 0,N langue
    Un thésard a souvent un problème de motivation jusqu'au moment où il aura un problème de temps....

  4. #4
    Membre habitué Avatar de horkets
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    326
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 326
    Points : 138
    Points
    138
    Par défaut
    Vu qu'une personne peut parler plusieurs langues et à moins de "violer" la première forme normale, c'est bien évidemment la table associative qu'il faut choisir
    En fait, la connectivite 1,1 est voulue, elle indique la langue maternelle d'une personne (dans le cadre de génération de documents dans la langue de cette même personne).

    en tous les cas, merci à vous deux pour ces précisions.
    24 hours a day ... never enough

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 763
    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 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    Dans ce cas votre modèle est mauvais.
    1) il est possible d'avoir plusieurs langues "maternelle". Par exemple lorsque les parents sont bilingues.
    2) il serait donc plus intelligent d'avoir la notion de langue par défaut.

    Dans ce cas il faut une double association.
    Voici les MCD et MPD de la chose :
    http://www.developpez.net/forums/att...1&d=1234167518
    MCD n:m avec défaut

    http://www.developpez.net/forums/att...1&d=1234167540
    MPD n:m avec défaut (correspondant au MCD ci avant.

    A +
    Images attachées Images attachées   
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  6. #6
    Membre habitué Avatar de horkets
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    326
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 326
    Points : 138
    Points
    138
    Par défaut
    Ah oui, effectivement, ...
    J'en prend bonne note pour la prochaine fois
    24 hours a day ... never enough

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

Discussions similaires

  1. [Entité-Association] Table d'association et cle etrangere
    Par shakly dans le forum Schéma
    Réponses: 4
    Dernier message: 19/09/2011, 10h27
  2. [1.x] Table d'association et cle etrangere
    Par shakly dans le forum Symfony
    Réponses: 2
    Dernier message: 16/09/2011, 09h38
  3. [MySQL] Table d'association et cle etrangere
    Par shakly dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 16/09/2011, 00h12
  4. Réponses: 6
    Dernier message: 13/12/2007, 09h14
  5. tables et jointures : cles etrangeres ?
    Par herve42 dans le forum Requêtes
    Réponses: 1
    Dernier message: 06/03/2007, 06h34

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