Maison base de données tutoriel mysql La clé étrangère MySQL peut-elle être la clé principale

La clé étrangère MySQL peut-elle être la clé principale

Apr 08, 2025 pm 04:27 PM
mysql Pourquoi

Les clés étrangères MySQL peuvent être définies sous forme de clés principales, mais ne sont généralement pas recommandées. Les raisons sont les suivantes: les clés étrangères assument la responsabilité de maintenir les relations, et les responsabilités sont trop lourdes après les avoir définies comme clés primaires. Les données redondantes augmentent les coûts de maintenance. Les clés étrangères dépendent de la clé primaire d'un autre tableau et peuvent provoquer des incohérences lorsqu'elles sont modifiées.

La clé étrangère MySQL peut-elle être la clé principale

La clé étrangère MySQL peut-elle être une clé principale? La réponse est: oui, mais elle n'est généralement pas recommandée.

Cette question semble simple, mais elle a caché un mystère. En surface, les clés étrangères ne sont-elles pas utilisées pour associer des tables? La clé principale n'est-elle pas utilisée pour identifier uniquement l'enregistrement? Il semble qu'il n'y ait rien de mal à définir la clé étrangère comme clé principale. Mais dans des applications pratiques, cela vous fait souvent creuser un trou pour vous-même.

Prenons d'abord les concepts des clés primaires et étrangères dans MySQL. La clé principale, comme son nom l'indique, est une colonne du tableau qui identifie de manière unique chaque enregistrement. Il garantit l'unicité des données et ne permet pas de valeurs en double. Une clé étrangère est utilisée pour établir une relation entre les tables. Il se réfère à la clé principale d'un autre tableau pour assurer la cohérence et l'intégrité des données.

En les comprenant, nous pouvons comprendre pourquoi il n'est généralement pas recommandé de définir des clés étrangères comme clés primaires. La raison est simple: la clé principale devrait se concentrer sur l'identification de l'unicité des enregistrements dans ce tableau, et la responsabilité de la clé étrangère est de maintenir la relation avec d'autres tables. La définition d'une clé étrangère en tant que clé principale signifie que vous obligez la clé étrangère à assumer les deux responsabilités, ce qui est comme le fait qu'un employé prenne en charge deux départements complètement différents en même temps, ce qui est inefficace et sujet aux erreurs.

Imaginez si votre clé étrangère est la clé principale d'un autre tableau, alors vous copiez réellement la clé principale d'une autre table dans ce tableau. Cela ajoute non seulement des données redondantes, mais peut également entraîner des incohérences de données. Si la clé principale d'un autre tableau change, les données de votre tableau doivent également être mises à jour en conséquence, sinon les données seront incohérentes. Ce n'est pas un problème mineur, surtout lorsque le volume de données est important, il peut être très difficile à maintenir et même à provoquer des erreurs imprévisibles.

Bien sûr, dans des cas spéciaux, vous devrez peut-être le faire. Par exemple, vous avez un tableau spécifiquement utilisé pour stocker certaines informations publiques d'autres tables, et la clé principale de ce tableau est également un identifiant unique d'autres tables. Dans ce cas, il est possible de définir la clé étrangère comme clé principale, mais soyez prudent et considérez pleinement l'intégrité et la cohérence des données.

Regardons un exemple, supposons qu'il existe deux tables: users et orders . Le tableau users a la clé principale user_id , et le tableau orders a la clé étrangère user_id , qui fait référence à la clé principale du tableau users .

 <code class="sql">-- users 表CREATE TABLE users ( user_id INT PRIMARY KEY, username VARCHAR(255) ); -- orders 表CREATE TABLE orders ( order_id INT PRIMARY KEY, user_id INT, order_date DATE, FOREIGN KEY (user_id) REFERENCES users(user_id) );</code>

Dans cet exemple, user_id de orders est une clé étrangère, mais ce n'est pas une clé principale. Si nous obligeons user_id à être la clé principale, il ne peut pas y avoir deux commandes dans orders appartiennent au même utilisateur, ce qui n'est évidemment pas conforme à la situation réelle.

Dans l'ensemble, bien que MySQL vous permette de définir des clés étrangères en tant que clés principales, ce n'est généralement pas une meilleure pratique. À moins que vous n'ayez une compréhension très profonde de la conception de la base de données et que vous ayez de bonnes raisons, il est préférable d'éviter de le faire. N'oubliez pas que la conception de la base de données claire peut assurer la stabilité et la maintenabilité du système. Ne sacrifiez pas la robustesse du système à la recherche d'une soi-disant simplicité. C’est comme construire une maison. Ce n'est que lorsque la fondation est fermement posée qu'un immeuble de grande hauteur peut être construit. Sinon, quelle que soit la beauté de la décoration, elle ne peut pas dissimuler le risque que la fondation soit instable.

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Stock Market GPT

Stock Market GPT

Recherche d'investissement basée sur l'IA pour des décisions plus intelligentes

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Qu'est-ce qu'un contrat ouvert dans le cercle des devises? Pourquoi est-ce important dans le trading à terme crypto? Une explication détaillée de cet article Qu'est-ce qu'un contrat ouvert dans le cercle des devises? Pourquoi est-ce important dans le trading à terme crypto? Une explication détaillée de cet article Aug 29, 2025 pm 04:09 PM

Quelle est la position ouverte (OI) dans le trading à terme de crypto-monnaie? Comment les positions ouvertes fonctionnent dans le trading à terme sur les positions ouvertes et le volume de trading à terme pourquoi les positions ouvertes sont importantes dans le trading à terme de crypto-monnaie Comment combiner des positions ouvertes avec d'autres indicateurs techniques 1. Indice de résistance relative (RSI) et positions ouvertes 2. Moyenne mobile et positions ouvertes 3. (OI) FAQ 1. 1.

Comment authentifier le compte d'échange OUYI? OKX Identity Authentication Newbie Guide 2025 Comment authentifier le compte d'échange OUYI? OKX Identity Authentication Newbie Guide 2025 Sep 02, 2025 pm 09:00 PM

Pourquoi les exigences de conformité d'authentification réelles à l'heure actuelle, la supervision mondiale du domaine financier devient de plus en plus stricte, en particulier en termes de flux de capital. Afin de se conformer aux réglementations pertinentes sur le blanchiment de lutte contre le blanchiment d'argent (LMA) et le financement antiterroriste (CFT), l'authentification réelle est devenue une partie nécessaire des opérations de conformité. Grâce à la vérification de l'identité, la plate-forme OKX peut s'assurer que ses services sont conformes aux cadres juridiques de divers pays, en particulier avec une base légitime lors de la gestion des transactions transfrontalières. Assurer la sécurité des transactions, l'authentification réelle peut effectivement empêcher l'identité d'identité et la fraude et améliorer la sécurité du processus de transaction. En vérifiant la véritable identité de l'utilisateur, le système peut identifier et empêcher les fonds illégaux de pénétrer ou de sortir, protégeant ainsi efficacement les actifs numériques des utilisateurs contre la violation. Améliorer la qualité du service Après avoir confirmé l'identité de l'utilisateur, la plate-forme peut fournir un support de service plus précis.

Qu'est-ce que Sapien (Sapien Currency)? Les perspectives futures et les prévisions de prix de Sapien Qu'est-ce que Sapien (Sapien Currency)? Les perspectives futures et les prévisions de prix de Sapien Aug 29, 2025 pm 02:06 PM

Répertoire Qu'est-ce que Sapien (Sapien)? Pourquoi devrais-je faire attention à Sapien récemment? Présentation de Sapien Caractéristiques clés: Sapien Project Background Comment fonctionne Sapien? Informations sur le financement de Sapien Sapien Économie de jetons Sapien Guide de lagramme Airdrop Sapien Perspectives Sapien Prévisions Prix Sapien 2025 Prix Prévision SAPIEN 2026-2031 PRÉVISION PRÉVENTIE SAPIEN 2031-2036 Prix prévu est Sapien qui vaut la peine d'acheter? Résumé‍ Qu'est-ce que Sapien (Sapie

Le mystère de Bitcoin: Quelle est la relation entre Len Sassaman et Satoshi Nakamoto? Une introduction d'article Le mystère de Bitcoin: Quelle est la relation entre Len Sassaman et Satoshi Nakamoto? Une introduction d'article Sep 02, 2025 pm 08:54 PM

Table of Contents Know Len Sassaman: Privacy advocates of crypto community Early research on cryptography and crypto-punk movements Len Sassaman and HalFinney: Cryptocurrency Connection Pays homage to Sassaman on the Bitcoin blockchain Bitcoin founder Sassaman’s silence Sassaman’s writing style and cryptography battle HBO’s new documentary, Polymarket gamblers and cryptocurrency speculation La mort et les mythes suivants de Sassaman s'opposent à Sassaman est l'argument le plus puissant de Sassaman pour la théorie du groupe: Sassaman est-il un groupe? La croyance de Sassaman: Valeur de crypto et crypto-monnaie de la vie privée, blockchain

BONK CONOR PRIVANT PRÉVENTION: Quel est l'avenir? Bonk peut-il atteindre 1 $? BONK CONOR PRIVANT PRÉVENTION: Quel est l'avenir? Bonk peut-il atteindre 1 $? Aug 29, 2025 pm 04:03 PM

Répertoire Qu'est-ce que Bonk Coin? Quel est le prix de Bonk? Pourquoi Bonk Coin (Bonk) a-t-il augmenté aujourd'hui? Généraire Bonk Prix de cette semaine BONK CONOR 2025 PRIVANT PRIVANT BONKCOIN 2026 PRIVANCE PRIVANT BONKCoin 2030 PRÉVISION PRÉVISION DES PRIX BONK CONOR 2040 PRIVANT PRIVANT BONK CONOR 2050 PRIVANT PRIVAIT FREAKINT FREETHESS QUESTIONS POUR LE CONORME DE BONK ATTENDRE 0,5 cents? Les pièces Bonk peuvent-elles atteindre 1 cent? Bonkcoin peut-il atteindre 10 cents? Bonkcoin

Que signifie le prix de glissement / glissement? Comment réduire le glissement et réduire les coûts des échanges de crypto-monnaie? Que signifie le prix de glissement / glissement? Comment réduire le glissement et réduire les coûts des échanges de crypto-monnaie? Aug 29, 2025 pm 02:30 PM

Que signifie le bilan de prix du catalogue? Raisons de glissement des prix: Pourquoi y a-t-il un glissement des prix de transaction? Comment calculer le prix du glissement dans l'exemple de glissement de crypto-monnaie Comment réduire le glissement des transactions? Résumé de la FAQ Si vous avez effectué un trading de contrats ou un trading au comptant sur des bourses telles que Binance et OKX, vous pouvez rencontrer cette situation: le prix de l'ordre est incompatible avec le prix de transaction final, entraînant une baisse du profit ou de l'amplification des pertes. Cette différence de prix n'est pas un échec sur l'échange, mais le résultat de "glissement" (également connu sous le nom de glissement). Alors, pourquoi le trading des crypto-monnaies connaît-il un glissement de prix? Quel est son impact sur les transactions? Le trading des crypto-monnaies ne fera-t-il que glisser?

Que signifie Douyin City Bull? Introduction à Douyin City Bull Mean Que signifie Douyin City Bull? Introduction à Douyin City Bull Mean Sep 02, 2025 pm 02:06 PM

Récemment, un blogueur de Shanghai a partagé une vision intéressante de "City Bull" de Shanghai qui a déclenché une discussion généralisée. Étonnamment, non seulement les habitants ne se sont pas mis en colère, mais ils ont rejoint les rangs de l'auto-moquerie. En tant que Shanghainese connu pour son exquisité, on peut dire qu'il est très généreux d'avoir une telle mentalité.

Comment brosser l'apprentissage progress_reaspable pour terminer rapidement les progrès de l'apprentissage Comment brosser l'apprentissage progress_reaspable pour terminer rapidement les progrès de l'apprentissage Sep 03, 2025 pm 06:48 PM

La réponse est d'utiliser des méthodes telles que la lecture à double vitesse, de comprendre la logique du jugement du système, de garder la page active, de stabiliser le réseau et d'éviter de faire glisser la barre de progression pour promouvoir efficacement la progression des vidéos d'apprentissage. Le noyau réside dans le système basé sur le temps de lecture comme base principale, complété par le mécanisme de détection d'activité et de téléchargement de progrès, grâce à l'utilisation rationnelle des fonctions de plate-forme, il améliore l'efficacité tout en assurant l'effet d'apprentissage de base et évite les comportements à haut risque tels que les plug-ins et les classes de brossage multi-appareils.

See all articles