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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Definition d'un clé étrangère d'une table sous phpMyAdmin


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre du Club
    Femme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Novembre 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur étude et développement

    Informations forums :
    Inscription : Novembre 2009
    Messages : 125
    Points : 55
    Points
    55
    Par défaut Definition d'un clé étrangère d'une table sous phpMyAdmin
    Bonjour,
    Je développe une application utilisant phpmyadmin, en fait je crée des offre d'emplois en renseignant un champ domaine d'activité, mon problème c'est que j'ai définit une clé étrangère pour l'offre pour éviter les conflits, car par exemple lors de la suppression d'un domaine donné, l'offre qui est relié à ce domaine sera supprimer aussi donc du coup je me demande si y'a un moyen plus sur ^pour éviter ce genre de probléme.
    ma démarche est la suivante:
    j'ai défini les tables en tant que INNO DB et j'ai défini dans la table offre , domaineId comme étant la clé étrangère pour pouvoir les relier.
    Merci d'avance pour votre aide.

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Dans phpMyAdmin, affiche la table offre puis clique sur le lien "Gestion des relations". Su l'écran suivant, tu dois voir ta clé étrangère déjà définie puis ON DELETE puis une liste déroulante. Dans cette dernière, tu choisis CASCADE, ce qui aura pour effet d'ajouter l'instruction ON DELETE CASCADE à la définition de ta clé étrangère. Grâce à cette instruction, la suppression d'un domaine entraînera automatiquement la suppression des offres de ce domaine.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre du Club
    Femme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Novembre 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur étude et développement

    Informations forums :
    Inscription : Novembre 2009
    Messages : 125
    Points : 55
    Points
    55
    Par défaut
    Merci pour la réponse,
    par contre ce que je veux c'est exactement le contraire, je veux éviter de supprimer un domaine qui est relié à une offre, par exemple en cas d'erreur de supression, donc je veux que quand l'utilisateur essaye de supprimer un domaine qui est relié à une offre, cette suppression ne va pas s'effectuer donc du cout j'afficherai un message disant "impossible de supprimer ce domaine car il est relié à une offre", donc j'ai pensé gérer ça avec les contraintes d'intégrités sous phpmyadmin.

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par nassing Voir le message
    je veux que quand l'utilisateur essaye de supprimer un domaine qui est relié à une offre, cette suppression ne va pas s'effectuer donc du cout j'afficherai un message disant "impossible de supprimer ce domaine car il est relié à une offre", donc j'ai pensé gérer ça avec les contraintes d'intégrités sous phpmyadmin.
    Tu utilises alors ON DELETE RESTRICT et MySQL ne va rien supprimer et va déclencher une erreur que ton programme doit capter et traduire en clair pour l'utilisateur.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

Discussions similaires

  1. Réponses: 5
    Dernier message: 16/07/2011, 16h49
  2. Réponses: 4
    Dernier message: 13/08/2009, 18h47
  3. Clé étrangéres dans une table Oracle
    Par Flipmode dans le forum Développement de jobs
    Réponses: 4
    Dernier message: 18/05/2007, 21h48
  4. Definir une clé étrangère dans une table existante?
    Par gui38 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 15/12/2006, 13h54
  5. Réponses: 5
    Dernier message: 28/04/2006, 11h55

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