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

Langage SQL Discussion :

Clé étrangère null


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 705
    Par défaut Clé étrangère null
    Je me suis laissé dire qu'une clé étrangère ne peut pas etre null; c'est vrai ?

    Pourquoi ?

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 500
    Par défaut
    Bien sûr que c'est vrai !!!
    Car par essence, elle doit référencer une valeur de la clé primaire de la table dont elle dépend.

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 705
    Par défaut
    Mais si j'ai une entité
    A qui "peut contenir" une entité B (agrégation)
    Comme j'ai la proposition (peut contenir) on a 0 ou 1 B. Donc dans le cas de 0 je fais comment ? A référence B, mais B peut exister sans A (aggrégation)

    Je suis un pro modélisation object mais pas base de données donc ca me pose des problèmes de compréhension.

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 500
    Par défaut
    SI j'ai bien compris ton exemple, c'est A qui peut exister sans B, et non l'inverse.

    Tu dis "A peut contenir B", mais je rajoute que "A peut aussi ne pas contenir B" (au sens Merise).
    Par contre, si B existe, il est forcément contenu par A.

    La clé primaire est dans A, la clé étrangère dans B...

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 705
    Par défaut
    Mais en faite si je comprends bien en modélisation de table on choisi pas la navigation qu'on veut.

    J'ai une voiture (A) qui peut avoir un moteur (B). (Je suis dans une casse par exemple). Donc la classe A contient un attribut moteur. Si je retire le moteur, l'attribut=null;

    A et B peuvent donc exister indépendamment.

    Si je te comprend pour respecter le problème de null comme clé étrangère, il faut que ce soit le moteur qui référence la voiture donc de (B vers A). en faite meme pas il faut d'office une table d'association représentant le lien entre les deux.

    Enfin en somme il ne faut pas penser comme en UML. Pour les référencements entre tables. Si je veux reconstruire une instance voiture et son moteur, avec mon DAO. Je parse la table voiture avec son immatriculation, et ensuite la table moteur avec la clé étrangère pointant sur l'ID du moteur.

    Autre question: est ce que une clé étrangère peut etre redondante ?

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Par défaut
    Une clé étrangère peut être nulle et représenter la cardinalité 0-x en modélisation.

    Elle peut aussi être redondante si tu ne définis pas un index unique dessus.

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

Discussions similaires

  1. clef étrangère à null
    Par supertotal dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 12/07/2010, 07h23
  2. many-to-one et clé étrangère null
    Par nicolas_isi dans le forum Hibernate
    Réponses: 1
    Dernier message: 06/07/2010, 09h30
  3. Clé étrangère à null
    Par grunk dans le forum MySQL
    Réponses: 5
    Dernier message: 22/01/2010, 14h10
  4. Clés étrangères nulles
    Par tofito dans le forum Requêtes
    Réponses: 5
    Dernier message: 03/09/2009, 06h42
  5. Question clé étrangère + Null
    Par vmolines dans le forum Langage SQL
    Réponses: 1
    Dernier message: 28/02/2008, 16h13

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