我什么时候应该使用“ NOT NULL”在MySQL表中,有什么好处吗?

StackOverflow https://stackoverflow.com/questions/240544

我有以下rails迁移:

create_table :articles do |t|
  t.integer :user_id, :allow_null => false
  t.integer :genre_id, :allow_null => false
  t.string :url, :limit => 255, :allow_null => false
  t.string :title, :limit => 60, :allow_null => false
  t.text :summary, :limit => 350, :allow_null => false
  t.integer :votes_count, :default => 0
  t.datetime :published_at, :default => nil
  t.timestamps
end

所有“NOT NULL”字段首先在模型中验证,所以我想知道我是否需要在迁移中烦扰allow_null?我不确定有什么好处“NOT NULL”如果有,则提供给数据库。

有帮助吗?

解决方案

如果您的性能或存储效率方面的意思不大。但是,将尽可能多的低级约束推送到数据库层是一种很好的做法。首先,它保证Rails中的细微错误不会导致非空字段中的一些随机 NULL 数据。同样,如果您针对同一个数据库运行另一个应用程序,那么将约束放在一个中心位置进行维护并避免重复将非常有帮助。

其他提示

NOT NULL是计算机可以关注你并防止你犯错误的另一件事。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top