Output Diary

プログラミング × 読書 のアウトプットを発信しています

【Rails】NOT NULL制約とは

f:id:kina_kq:20210429084524j:plain

 

NOT NULL制約とは、

データベースのテーブルの項目につける制限(制約)のひとつで、

「空っぽの値(NULL)は入れちゃダメ制約」のことです。

 

NULLは「空だよー何も入ってないよー」ということをあらわす単語です。

NOT NULL制約が付与された項目にはNULLを入れることが出来ません。

 

NOT NULL制約とバリデーションではどう違う?

 

NOT NULL制約は、テーブルのカラムを定義します。

一方、バリデーションはモデルのバリデーションに記述します。

 

どっちもよく似ている感じがしますが、

両者の違いは空文字("")が許可されるかされないかの違いです。

 

「NOT NULL制約」は空文字が許可される一方、

バリデーションの「presence: true」では空文字は許可されません。

 

空文字含む全てのnullを許可したくない場合には「NOT Null制約」とバリデーションの「presence: true」の両方に記載しておくと安心です。

 

参考

IT用語辞典 NOT NULL制約

【Rails】1分で分かる!Not Null制約とpresence: trueの違いについて簡単にまとめてみた|TechTechMedia