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

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

需要您的建议!

===============>>#1 票数:0

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

===============>>#2 票数:0

围栏的两侧都有意见,但是对我来说最有意义的是为所有字段指定“ NOT NULL”,默认值为您选择的值(通常是黑屏),但在日期上可能有所不同。 这就是我处理大多数桌子的方法。

话虽如此,请在这里这里参考另一边的论点。

除了某些特殊情况外,我还有可能不使用NULL值的原因有很多。 一是它使您的查询更加容易。 您知道您可能有空值,但您没有NULL值,也不必同时搜索这两个值。

我似乎还想起了一些使用NULL值的引擎上的索引性能问题,但是在MySQL 5.6上可能不再是问题。

要考虑的另一件事是NULL或空白值的含义。 为了论证,如果您的数据库中未填写约翰的毕业日期,是否表示:

  1. 约翰还没毕业?
  2. 他已经毕业了,但我们不知道什么时候?
  3. 还是我们不知道他是否毕业了?

设计表时要考虑这一点。

  ask by Gihanmu translate from so

未解决问题?本站智能推荐: