アソシエーション、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型で、カラムを追加する時(外部キーを参照する時)に使用します。