sql >> データベース >  >> RDS >> Mysql

カスケードが不要な場合の外部キー

    この質問 実際にはあなたの質問にも当てはまるかもしれません。

    他のテーブルの行を参照する列がテーブルにある場合は、常に外部キーを使用する必要があります。これらのチェックによって提供される機能が「必要ないと思われる」場合でも、データの整合性を保証するのに役立ちます。自分のコードのチェックを忘れました。

    外部キーチェックのパフォーマンスへの影響は、ほとんどの場合無視できます(上記のリンクを参照)。リレーショナルデータベースは非常に最適化されたアルゴリズムを使用して実行するためです(結局のところ、エンティティ間の関係を実際に定義するものであるため、これらは重要な機能です)。

    FKのもう1つの大きな利点は、他の人がデータベースのレイアウトを理解するのにも役立つことです。

    編集: 上記のリンク先の質問はSQL-Serverに関するものなので、MySQLと非常によく似た種類の回答がある質問を次に示します。MySQLに外部キーを導入するとパフォーマンスが低下しますか



    1. 24時間後に期限切れになるSQLエントリ

    2. GTTテーブル統計とSYS.WRI$_OPTSTAT_TAB_HISTORY

    3. SQL Serverデータベースメール(T-SQL)から送信された電子メールのリストを返す

    4. エラー:'ソケットを介してローカルMySQLサーバーに接続できません'/var/run/mysqld/mysqld.sock'(2)'-/var/run/mysqld/mysqld.sockがありません