允许非必填字段接受NULL值是一个好习惯吗? Mysql的

时间:2014-04-21 06:12:59

标签: php mysql null

我有一个PHP表单,其中包含必填字段和非必填字段。在相应的mysql表中我定义了必填字段是NOT NULL&非必填字段将接受NULL值。但我发现即使对于NOT NULL列,用户也可以输入空白值。会发生什么是如果我将NULL列留空,mysql将其值显示为NULL,如果我将NOT NULL列留空,则mysql将其值显示为空白(不显示NULL)。

我现在感觉是没有必要在相应的mysql表中将非必填字段定义为NULL。什么是最佳做法?保持原样可以吗? (即仍然允许它们接受NULL值)或者我也应该更改非必填字段以不接受NULL值。

需要你的建议!!!!!

2 个答案:

答案 0 :(得分:0)

如果提及表单字段会更好, 但如果您的意思是用户可以在表单输入中输入空白(空格字符)值,则应过滤输入数据以避免将空值插入数据库。 我认为你应该只控制php代码中的必填字段,而表列null / not null定义基于输入字段的类型和其他表之间的关系。

答案 1 :(得分:0)

围栏的两边都有意见,但对我来说最有意义的是指定" NOT NULL"对于所有字段,使用您选择的默认值 - 通常是空白屏幕,但对于日期,它可能是不同的。这就是我对大多数表格所做的事情。

话虽如此,请参阅另一方herehere的论据。

除特殊情况外,我和可能有人不使用NULL值的原因有多种。一个是它使你的查询更容易。您知道自己可能有空白值,但是您知道自己没有空值,也不必搜索两者。

我似乎还记得在一些具有NULL值的引擎上索引性能的问题,但这可能不再是MySQL 5.6的问题。

要考虑的另一件事是NULL或空值的含义。为了论证,如果你的数据库中没有填写约翰的毕业日期,那是否意味着:

  1. 约翰还没有毕业?
  2. 他毕业但我们不知道什么时候?
  3. 或者我们不知道他是否毕业了?
  4. 在设计表格时需要考虑这一点。