制約って、どんな時に必要?

 

さて、今回は制約についてです。

 

これもオリジナルアプリケーションの追加実装の時に、あれれれれれれ?

どんな時に必要なんだっけ?と思った箇所でしたので、復習していきたいと思います。

 

まず制約とは、データを扱う際に制限をかけることです。

制約はDBに直接設定するものなので、後に変更するのは手間がかかるので設計の時点でしっかりと考えることが重要です。

 

制約はたくさん種類がありますが、今回は NOT NULL制約についてです。

 

NOT NULL制約は、テーブルの属性値にNULL(空の値) が入らないように制限する

制約です。

 

指定したカラムがDBに空のままでは保存できなくなります。

書き方は下記のようになります。

t. :カラム名, null: false

db/migrate/202020xxxxxx_create_posts.rb

class CreatePosts < ActiveRecord::Migration[6.0]
def change
create_table :posts do |t|
t.string :title, null: false
t.text :text, null: false
t.references :user, null: false, foreign_key: true
t.timestamps
end
end
end

 

これで title と text ,user が空では保存できなくなりました。

 

次回は、他の制約も見ていきたいと思います。