Railsのマイグレーションファイルでテーブルを作成する際に、null: false
などのオプションをつけるとDBでNOT NULL
制約がつくと思います。他に外部キーなどです。
これはつけることによってDBにアクセスして直接操作する際にも、バリデートがかかることになります。ところがrails tutorialのソースコードを見てみると、DBにカラム制約はつけておらずにモデルにhas_many
やbelongs_to
, precense: true
をつけているだけです。モデルにこれらをつけるとモデルを通して保存する時にrubyコードの段階でエラーが発生させることができます。
ですが、DBを直接操作する際にこのバリデートは効かないと思います。Railsでアプリを作る際はカラム制約はあまり使われない傾向があるのでしょうか?使わない場合はセキュリティなどに問題が起きる場合はありますでしょうか?
カラム制約を作るメリット・デメリットが知りたいです。rails以外でもDBを使うときにマイグレーションにカラム制約をつけるたりするのかなと思いました。
ご回答、よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/09/30 13:55
2015/09/30 13:58
2015/10/01 12:52