以下の内容はhttps://haayaaa.hatenablog.com/entry/2019/12/06/235610より取得しました。


外部キー制約

外部キー制について考える機会があったのでメモしておきます〜

 

外部キー制約とは

外部キーは関連づけているテーブル間のデータの整合性を保つために存在する制約です。

外部キー制約を設定しておくと、存在しないidで外部キーを保存する事ができなくなります。

 

 

 

railsで外部キーを設定する

テーブル作成する時のマイグレーションファイルで外部キーとして設定したいカラムを以下のように設定します。

t.refernce  親モデル名, foreign_key: true

 

こうするとカラムは 親モデル名_id という名前で、外部キー制約が設定された状態で作成されます。

インデックスも貼ってくれます。

 

 

感想その他

モデルでバリデーションかけるとしても、データベースは必ず整合性の取れた状態であってほしいので、データベースレベルでの制約も必要ですね!!

自分が間違えてSQL実行してしまった場合にはモデルのバリデーションはあてになりませんし。。。

 

 




以上の内容はhttps://haayaaa.hatenablog.com/entry/2019/12/06/235610より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14