アソシエーション、Primary Key、foreign keyについて

まず、データには一つ一つ識別するためのidがあります。これをPrimary Key(主キー)と言い、Railsではidというカラム名でテーブル作成時に標準搭載されています。

そして、foreign keyというのはその親のid(Primary key)を保存するカラムです。

foreign keyを設定することにより、どの親に所属しているのか?というのを識別することができるようになります。

 

railsではモデル名_idとすると、それを自動的にforeign_keyであると認識してくれます。

 

例えば、tweetsテーブルにuser_idというカラムを追加することで、これはUserテーブルのid(primary key)のforeign_keyであると自動的に認識してくれます。

 

アソシエーション時や、モデルにreferences型で、カラムを追加する時(外部キーを参照する時)に使用します。