モデルのバリデーションだけでなくデータベースでもカラム制約をかける理由

データベース側の制約がないと、SQLを実行したり、直接データを操作したときにモデルで禁止した不整合なデータができる可能性がある。

不整合なデータはアプリの不具合やエラーの原因となりかねないので、アプリケーションからモデルを経由してデータを作成する場合だけでなく、データベースを直接操作することも考慮する。