外部キー制約
外部キー制について考える機会があったのでメモしておきます〜
外部キー制約とは
外部キーは関連づけているテーブル間のデータの整合性を保つために存在する制約です。
外部キー制約を設定しておくと、存在しないidで外部キーを保存する事ができなくなります。
railsで外部キーを設定する
テーブル作成する時のマイグレーションファイルで外部キーとして設定したいカラムを以下のように設定します。
t.refernce 親モデル名, foreign_key: true
こうするとカラムは 親モデル名_id という名前で、外部キー制約が設定された状態で作成されます。
インデックスも貼ってくれます。
感想その他
モデルでバリデーションかけるとしても、データベースは必ず整合性の取れた状態であってほしいので、データベースレベルでの制約も必要ですね!!
自分が間違えてSQL実行してしまった場合にはモデルのバリデーションはあてになりませんし。。。