Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Fremdschlüssel, wenn Kaskaden nicht benötigt werden

Die Antworten auf diese Frage könnte eigentlich auch auf deine Frage zutreffen.

Wenn Sie Spalten in Tabellen haben, die auf Zeilen in anderen Tabellen verweisen, sollten Sie immer Fremdschlüssel verwenden, denn selbst wenn Sie der Meinung sind, dass Sie die von diesen Prüfungen angebotenen Funktionen „nicht benötigen“, wird dies dennoch dazu beitragen, die Datenintegrität zu gewährleisten, falls Sie dies tun vergessen, Ihren eigenen Code einzuchecken.

Die Leistungsauswirkung von Fremdschlüsselprüfungen ist in den meisten Fällen vernachlässigbar (siehe obigen Link), da relationale Datenbanken sehr optimierte Algorithmen verwenden, um sie durchzuführen (schließlich sind sie ein Schlüsselmerkmal, da sie tatsächlich die Beziehungen zwischen Entitäten definieren). P>

Ein weiterer großer Vorteil von FKs besteht darin, dass sie auch anderen helfen, das Layout Ihrer Datenbank zu verstehen.

Bearbeiten: Da sich die oben verlinkte Frage auf SQL-Server bezieht, hier eine mit sehr ähnlichen Antworten für MySQL:Verringert die Einführung von Fremdschlüsseln in MySQL die Leistung