Php 在数据库中使用空白值?

Php 在数据库中使用空白值?,php,forms,checkbox,Php,Forms,Checkbox,如果复选框未选中,则在提交表单后,它将在db字段中生成一个空白值 在提交表单之前,我可以为空复选框指定一个值: if (empty($checkbox1)){ $checkbox1='none'; } 等等 在数据库中有一堆空字段,还是插入一堆带有“none”的字段更好? 在我看来,“无”字段是多余的,会占用更多空间…我认为您应该为该复选框指定一个db字段,该字段可以采用两个值:0和1。其中一个等于“checked”,另一个等于“none”我认为您应该为该复选框指定一个db字段,该字段可以采

如果复选框未选中,则在提交表单后,它将在db字段中生成一个空白值

在提交表单之前,我可以为空复选框指定一个值:

if (empty($checkbox1)){
 $checkbox1='none';
}
等等

在数据库中有一堆空字段,还是插入一堆带有“none”的字段更好?
在我看来,“无”字段是多余的,会占用更多空间…

我认为您应该为该复选框指定一个db字段,该字段可以采用两个值:0和1。其中一个等于“checked”,另一个等于“none”

我认为您应该为该复选框指定一个db字段,该字段可以采用两个值:0和1。其中一个等于“checked”,另一个等于“none”

我这样做的方式是定义DB字段,如下所示:

Type: Enum
Length/Values: 'yes', 'no'
Default as defined: no
使用这种方法,您只需要在选中复选框(或更改状态)时进行更新


正如其他人提到的,空间可以忽略不计

我这样做的方式是定义DB字段,如下所示:

Type: Enum
Length/Values: 'yes', 'no'
Default as defined: no
使用这种方法,您只需要在选中复选框(或更改状态)时进行更新


正如其他人提到的,空间可以忽略不计

您可以使用以下方法:enum、bit(1)或tinyint(1),因为您使用的是类似布尔值的变量

如果您关注的是性能,则枚举和位之间的差异不是该位:

但如果您查看使用的存储空间,enum和tinyint都使用8字节的存储空间,而位(1)只使用1字节。mysql中的数据类型BOOLEAN是tinyint(1)的同义词,因此请注意使用该类型

因此,与前面给出的枚举解决方案相比,可以更好地使用位(1)来存储复选框的结果


有关为什么不使用枚举的详细信息:

您可以使用以下方法:枚举、位(1)或tinyint(1),因为您使用的是类似布尔值的变量

如果您关注的是性能,则枚举和位之间的差异不是该位:

但如果您查看使用的存储空间,enum和tinyint都使用8字节的存储空间,而位(1)只使用1字节。mysql中的数据类型BOOLEAN是tinyint(1)的同义词,因此请注意使用该类型

因此,与前面给出的枚举解决方案相比,可以更好地使用位(1)来存储复选框的结果


有关为什么不使用enum的更多信息:

不要担心空间问题。你所说的空间是微不足道的。这是过早的优化。所以,如果选中了checkbox1、checkbox3,那么它们将用表单值更新,而checkbox2、checkbox4、checkbox5应更新为“无”或保留为空?将它们设置为空,或者更好的是,将它们设置为空。不要担心空间问题。你所说的空间是微不足道的。这是过早的优化。所以,如果选中了checkbox1、checkbox3,则这些将用表单值更新,而checkbox2、checkbox4、checkbox5应更新为“无”或保留为空?将它们设置为空,或者更好的是,将它们设置为空。