独学でRubyとRuby on Railsを勉強しています、初心者です。
Ruby on Railsの外部キー制約について質問があります。
よろしくお願いいたします。
今、独学で簡単なブログサイトを開発しております。
Modelの構造は以下の通りです。
User(ユーザー)
1class CreateUsers < ActiveRecord::Migration 2 def change 3 create_table :users do |t| 4 t.string :name, null: false # ユーザー名 5 t.string :email # メールアドレス 6 t.integer :gender, null: false, default: 0 # 性別(0:男性, 1:女性) 7 8 t.timestamps null: false 9 end 10 end 11end
Post(投稿)
1class CreatePosts < ActiveRecord::Migration 2 def change 3 create_table :posts do |t| 4 t.references :user, null: false # 外部キー 5 t.string :title, null: false # タイトル 6 t.text :content # 投稿の内容 7 t.timestamps null: false 8 end 9 add_index :posts, :user_id 10 add_foreign_key :posts, :users 11 end 12end
comment(コメント)
1class CreateComments < ActiveRecord::Migration 2 def change 3 create_table :comments do |t| 4 t.references :user, null: false # 外部キー 5 t.references :post, null: false # 外部キー 6 t.text :content # コメントの内容 7 t.timestamps null: false 8 end 9 end 10end
ここで、1つ質問なのですが
Post(投稿)のModelには「add_foreign_key :posts, :users」という風に外部キー制約を記載しておりますが
Comment(コメント)のModelには外部キー制約を記載しておりませんが、アプリケーションは正常に動作いたします!
質問したい内容は以下の2点です。
①外部キー制約とは、どのような場合に必要になるのでしょうか?
②また、comment(コメント)のModelには外部キー制約を記載していないのにアプリケーションは何故、正常に動作するのでしょうか?
アドバイスなどよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/01/07 02:49 編集