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

 MySQL Discussion :

Problème de clé étrangère [MySQL-5.6]


Sujet :

MySQL

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2014
    Messages : 7
    Points : 6
    Points
    6
    Par défaut Problème de clé étrangère
    Bonjour,

    D'avance, mes excuses si cette question a déjà été traitée, mais je n'ai pas su trouver de réponse. Je débute plus ou moins ne mysql, mais j'ai de l'expérience en bases de données.
    Je construis une base servant à gérer des salles informatiques. Chaque salle peut avoir plusieurs adresses IP. Par ailleurs, il existe des personnes référentes, qui peuvent s'occuper de plusieurs salles.
    J'ai donc créé une table "salle", un table "referent" et une table "adresses_ip". J'ai établi des clés étrangères, d'une part entre salle et referent (champ "referent" dans salle relié au champ "id" de referent) et d'autre part entre adresse_ip et salle (champ "id_salle" dans adresse_ip relié à "id" dans salle).
    Premier point : pouvez-vous me confirmer que la démarche est correcte ?

    Deuxième point : ma construction marche aussi longtemps que je n'importe pas de données. Dès que j'essaie d'importer des données dans "salle", j'ai un message d'erreur du genre "impossible to update or create a child row". Idem pour les adresses IP.

    Mais si j'importe mes données sans créer les clés étrangères, l'importation se passe bien, mais je ne peux plus créer de clé étrangère (message d'erreur).

    J'ai cru comprendre au hasard de mes recherches sur internet que la raison serait que toutes mes salles n'ont pas de referent ou d'adresse_ip. Est-ce vraiment obligatoire ? Parce que, en effet, les données ne sont pas forcément complètes, et c'est normal !

    merci d'avance de vos réponses.

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Bonjour,

    Pour la partie conception il y a un forum dédié : http://www.developpez.net/forums/f62...sation/schema/

    Avant d'attaquer la partie physique il faut s’intéresser à la partie conceptuelle (ou logique).

    Faites ça avec un outil vous évitera des erreurs basiques.


    Poser vos règles de relation entre vos différentes entités dans les deux sens.

    Par exemple :
    Une salle possède zéro à n adresse ip.
    Une adresse ip est associée à une seule salle.

    Une personne s'occupe de zéro à n salles.
    Une salles peut-elle être gérer par n personnes différentes ?

    Selon la réponse à cette dernière question la modélisation que vous avez mis en place pourra changer.


    Concernant les contraintes, lisez cet article : http://sqlpro.developpez.com/cours/s...partie2#L7.1.7
    Sinon, on peut mettre "NULL" dans une colonne, ceci vous permettra d'ajouter des adresses ip sans qu'elles ne soient associées à une salle en particulier

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2014
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par punkoff Voir le message
    Bonjour,

    Avant d'attaquer la partie physique il faut s’intéresser à la partie conceptuelle (ou logique).

    [...]

    Concernant les contraintes, lisez cet article : http://sqlpro.developpez.com/cours/s...partie2#L7.1.7
    Sinon, on peut mettre "NULL" dans une colonne, ceci vous permettra d'ajouter des adresses ip sans qu'elles ne soient associées à une salle en particulier
    Merci de tes réponses.
    La partie conceptuelle est celle qui me pose le moins de problèmes, je développe des bases dans d'autres environnements depuis très longtemps.
    Pour ce qui est de mon problème, j'ai fini par arriver à lier les salles à leur référent en mettant un zéro comme id_référent dans la table "salle" et en créant un référent bidon avec comme id zéro. Ce n'est pas très propre mais ça a marché. Mais ça semble confirmer qu'il faut absolument une valeur dans la colonne qui sert de clé étrangère...

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    non.

    Regardez les DDL et vérifier que la colonne n'a pas une contrainte de type : NOT NULL

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

Discussions similaires

  1. [phpMyAdmin] Problème création Clé étrangère (FK)
    Par irnbru dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 16/05/2007, 19h34
  2. Problème avec clé étrangère
    Par gothard dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 22/02/2007, 16h50
  3. Problème de clé étrangère
    Par sylesis dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 25/11/2006, 22h32
  4. Problème création clés étrangères
    Par sat478 dans le forum Débuter
    Réponses: 1
    Dernier message: 01/05/2006, 15h53
  5. [IB6] Problème de clef étrangère
    Par Neilos dans le forum InterBase
    Réponses: 8
    Dernier message: 28/03/2006, 19h40

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