TSQL - 何时使用'not null'

use*_*491 5 sql sql-server

在考虑是否应该将字段标记为"非空"而不仅仅声明除主键之外的所有内容时,我应该遵循哪些一般指导原则?

"not null"字段是否应具有DEFAULT值?

hov*_*ova 8

取决于您希望应用程序的行为方式.

  • 首先,永远不会有一个可能的行,这个值不包含有意义的数据,然后使用NOT NULL.也就是说,这个值总是有意义的并代表一些东西.
  • 您是否希望用户或程序员以某种形式或方式填写该值?在没有DEFAULT的情况下使用NOT NULL
  • 您希望它对用户和程序员来说是可选的吗?对DEFAULT使用NOT NULL