web-dev-qa-db-fra.com

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

Je me demandais,

Quelle sera ma motivation pour utiliser la contrainte comme clé étrangère dans MySQL, car je suis sûr que je peux gouverner les types ajoutés?

Améliore-t-t-il les performances?

43
Dejell

Touches étrangères Application Intégrité référentielle . Ces contraintes garantissent une ligne dans une table order_details avec un champ order_id Référencer une table orders neverra jamais de order_id valeur qui n'existe pas dans la table orders.

Les clés étrangères ne sont pas tenues de disposer d'une base de données relationnelle de travail (en fait Stockage par défaut de MySQL ne prennent pas en charge FKS), mais elles sont définitivement essentielles pour éviter les relations brisées et les lignes orphelinées (c'est-à-dire une intégrité référentielle. ). La capacité d'appliquer une intégrité référentielle au niveau de la base de données est requise pour le [~ # ~ ~] c [~ # ~] In [~ # ~] acide [~ # ~ # ~ # ~ # ~ # se tenir debout.

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

66
Daniel Vassallo