Maison > Article > base de données > Comment créer des clés étrangères dans Navicat
La clé étrangère de la base de données représente le lien pertinent entre deux relations. La table avec la clé étrangère d'une autre relation comme clé primaire est appelée table maître, et la table avec la clé étrangère est appelée table esclave de la table maître. Ci-dessous, nous vous présenterons comment créer des clés étrangères dans Navicat.
Tutoriel recommandé : Tutoriel vidéo d'introduction à MySQL
1. Ouvrez Navicat et sélectionnez la table de base de données que vous souhaitez utiliser. , cliquez avec le bouton droit et sélectionnez Table de paramétrage.
2. Cliquez sur l'option de clé étrangère pour commencer à définir des clés étrangères.
Il y a sept colonnes au total. Présentons brièvement la signification de ces colonnes :
« Nom » : vous n'avez pas besoin de le remplir. Le système le générera automatiquement une fois que vous l'aurez enregistré avec succès.
"Field" : Quelle clé vous souhaitez définir comme clé étrangère.
"Base de données de référence" : Base de données associée aux clés étrangères.
"Table de référence" : table associée
"Champ de référence" : champ associé,
"Lors de la suppression" : l'action sélectionnée lors de la suppression.
"Lors de la mise à jour" : C'est l'action sélectionnée lors de la mise à jour.
Informations étendues : Le rôle des clés étrangères
Maintenir la cohérence et l'intégrité des données, l'objectif principal est de contrôler le stockage des tables de clés étrangères Données dans . Pour associer deux tables, la clé étrangère ne peut faire référence qu'aux valeurs des colonnes de la table ou utiliser des valeurs nulles.
Si aucune clé étrangère n'est utilisée, une valeur (telle que 20140999999) est insérée dans le champ numéro d'étudiant du tableau 2, mais cette valeur n'existe pas dans le tableau 1. A ce moment, la base de données permet l'insertion et ne bloquera pas la valeur insérée. Les données sont vérifiées pour les relations. Cependant, lors de la configuration d'une clé étrangère, la valeur que vous insérez dans le champ ID étudiant du tableau 2 doit se trouver dans le champ ID étudiant du tableau 1. Dans le même temps, si vous souhaitez supprimer un certain champ de numéro d'étudiant dans le tableau 1, vous devez vous assurer qu'il n'y a aucune colonne dans le tableau 2 faisant référence à la valeur du champ, sinon il ne sera pas supprimé. C’est ce qu’on appelle maintenir la cohérence et l’intégrité des données. Comme indiqué à droite, si le tableau 2 fait toujours référence à un certain identifiant d'étudiant dans le tableau 1, mais que vous supprimez l'identifiant d'étudiant dans le tableau 1, le tableau 2 ne saura pas à quel étudiant correspond l'identifiant d'étudiant.
Les tables de la base de données doivent être conformes aux spécifications pour éviter la redondance des données, les anomalies d'insertion, les anomalies de suppression et autres phénomènes. Le processus canonique est le processus de décomposition du tableau. Après décomposition, les attributs représentatifs d’une chose apparaissent dans différents tableaux. Évidemment, ils doivent être cohérents. Par exemple, les données représentatives d'un étudiant sont le numéro d'étudiant 012, qui est 012 dans le tableau des étudiants et devrait également être 012 dans le tableau des notes. Cette cohérence est obtenue par les clés étrangères. La fonction d'une clé étrangère est la suivante : sa valeur doit être la valeur de clé primaire d'une autre table. Le numéro d'étudiant est la clé primaire dans la table des étudiants et la clé étrangère dans la table des notes. Le numéro d'étudiant dans la liste des notes doit être le numéro d'étudiant dans la liste des étudiants. Par conséquent, le numéro d’étudiant dans le tableau des étudiants et le numéro d’étudiant dans le tableau des notes sont cohérents. On peut comprendre intuitivement que la fonction des clés étrangères est d'obtenir une cohérence de signe de la même chose dans différentes tables. 2 Réalisation fonctionnelle de deux tables connectées par des clés étrangères Lorsqu'elle est utilisée séparément, la fonction de clé étrangère est réalisée par deux méthodes [4] :
Empêcher l'exécution
● Insérez une nouvelle ligne de la table et la valeur de la clé étrangère n'est pas la valeur de la clé primaire de la table principale, ce qui empêche l'insertion
● Modifiez la valeur de la clé étrangère à partir du table, et la nouvelle valeur n'est pas la clé primaire de la table principale. La valeur empêchera la modification
● Supprime une ligne de la table maître, et sa valeur de clé primaire empêchera la suppression si elle existe dans la table esclave ; table (si vous souhaitez la supprimer, vous devez d'abord supprimer les lignes concernées de la table esclave)
●La table maître modifie la valeur de la clé primaire Si l'ancienne valeur existe dans la table esclave, la modification. est bloqué (si vous souhaitez le modifier, vous devez d'abord supprimer les lignes concernées de la table esclave).
Exécution en cascade
● Supprimez les lignes de la table principale et supprimez ensemble les lignes associées de la table
● Modifiez la valeur de la clé primaire dans ; la table principale, modifiez ensemble les valeurs de clé étrangère des lignes associées de la table. Deux méthodes sont proposées aux utilisateurs. Quelle que soit la méthode choisie, il n’y aura aucune ligne supplémentaire dans le tableau. D'un autre point de vue, la même chose est obtenue en rejetant l'incohérence entre les indicateurs de la table esclave et de la table maître pour obtenir une cohérence avec les indicateurs de la table maître.
● Deux méthodes d'implémentation, choisissez parmi les méthodes suivantes :
● Interface : configurez deux zones de sélection pour la mise à jour en cascade et la suppression en cascade. Si elle est sélectionnée, la cascade sera exécutée, et sinon. sélectionné, il sera bloqué ;
●Command : Soit E)kSCM)E et RESTRICT deux options facultatives, CASCADE signifie exécution en cascade et RESTRICT signifie empêcher l'exécution.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!