Mysql
 sql >> Base de données >  >> RDS >> Mysql

Pourquoi utiliser des contraintes de clé étrangère dans MySQL ?

Clés étrangères appliquer l'intégrité référentielle . Ces contraintes garantissent qu'une ligne dans une table order_details avec un champ order_id faisant référence à une orders la table n'aura jamais de order_id valeur qui n'existe pas dans les orders table.

Les clés étrangères ne sont pas obligées d'avoir une base de données relationnelle fonctionnelle (en fait le stockage par défaut de MySQL moteur ne prend pas en charge les FK), mais ils sont absolument essentiels pour éviter les relations brisées et les lignes orphelines (c'est-à-dire l'intégrité référentielle). La capacité à appliquer l'intégrité référentielle au niveau de la base de données est requise pour le C dans ACID se tenir debout.

En ce qui concerne vos préoccupations concernant les performances, il y a en général un coût de performance, mais qui sera probablement négligeable. Je suggère de mettre toutes vos contraintes de clé étrangère, et de n'expérimenter sans elles que si vous avez de réels problèmes de performances que vous ne pouvez pas résoudre autrement.