首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当只有空字符串通过HTTP POST从客户端传来时,在数据库中处理空值与空字符串

当只有空字符串通过HTTP POST从客户端传来时,在数据库中处理空值与空字符串
EN

Stack Overflow用户
提问于 2010-10-09 10:45:39
回答 2查看 314关注 0票数 1

我的MySQL数据库有仔细定义的字段。如果某些字段有可能是未知的,则允许空值。

我正在编写一个基于web的CMS来处理上述数据库中的数据。显然,来自HTML表单的post数组从不包含空值,只包含空字符串。

我不想通过添加"NULL复选框“或类似的东西来混淆CMS的用户,但是我不能从post数组中判断一个字段应该是null还是空的。

对于允许空值的字段,我应该在保存时将所有空字符串转换为空值吗?

对于这类难题,有哪些好的实践?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-10-09 11:01:26

这是一个棘手的问题。当然,用户没有办法知道他们是要插入空字符串还是什么都不要。所以答案真的取决于你。是否允许用户输入空字符串?它这样做有什么意义吗?如果空字符串表示的是空字符串没有的含义,并且定义良好,那么就允许这两种方式。

如果它们之间没有区别,那么选择一个并坚持使用它。我个人不明白为什么你需要保持这样的空字符串,这只会让事情变得更加混乱。只需使用NULL表示缺少数据即可。

现在就做出你的决定,记录下来并坚持下去。

票数 2
EN

Stack Overflow用户

发布于 2010-10-09 11:25:20

你真的想用它棘手的three-value logic来处理真正的NULL吗?

根据我的经验,您很少真正想要NULL带来的显式不确定性。为用户不关心填写的值存储一个空字符串通常更实用。然后,您可以继续执行WHERE t.field<>'x'WHERE t0.field=t1.field之类的搜索,而不必担心当其中一个或两个都为空时,这会对布尔逻辑造成什么影响。

如果您已经有了一个依赖于null的不确定性的工作数据库,并且这是您的需求的固有部分,那么好吧,坚持使用null (在这种情况下,您可能不得不将可空字段中的空用户输入转换为null,因为没有最终用户能够理解nothing和null之间的概念差异)。

但就我个人而言,我仍然只对可选的外键引用使用空值(当不使用单独的连接表时)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3895502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档