Rails フォロー機能でfollower_idに外部キー制約は不要なのか
Q&A
Closed
Rialsチュートリアルにてユーザーフォロー機能を学習中です。
教材ではモデル作成の際のmigrationファイルが以下のように実装されています。
class CreateRelationships < ActiveRecord::Migration
def change
create_table :relationships do |t|
t.integer :follower_id
t.integer :followed_id
t.timestamps null: false
end
add_index :relationships, :follower_id
add_index :relationships, :followed_id
add_index :relationships, [:follower_id, :followed_id], unique: true
end
end
今回疑問に思っているのが、followed_id,follower_idに外部キー制約は不要なのかということです。
外部キー制約については、他テーブルと対応する値の生合成を担保する場合につけておくべきものだと認識していましたが、今回の場合だとどちらのカラムにも存在するuser_idが入ると思われますし、外部キー制約をしておけば、add_indexの記載も不要となるので、foreign_key: { to_table: :users }をつけるべきなのではと思ったのですが、何かの理由があってあえてついていないのでしょうか?
初歩的な質問かとは思いますが、回答いただけると幸いです。