当前位置:  开发笔记 > 编程语言 > 正文

处理用户输入时为NULL与Empty

如何解决《处理用户输入时为NULL与Empty》经验,为你挑选了3个好方法。

是的,另一个NULL vs空字符串问题.

我同意NULL意味着没有设置的想法,而空字符串意味着"一个空的值".这是我的问题:如果列的默认值为NULL,我如何允许用户输入该NULL.

假设在系统上创建了一个新用户.有一个名字和姓氏字段; 姓氏不需要姓氏.创建用户时,此人将看到2个文本输入,一个用于第一个,一个用于最后一个.该人选择仅输入姓氏.第一个名称在技术上没有设置.在插入期间,我检查每个字段的长度,将所有空字段设置为NULL.

查看数据库时,我看到未设置名字.立即想到的问题是,他们可能从未见过名字字段(即因为错误).但这种情况并非如此; 如果空白,他们就离开

所以,我的问题是,如何在接收用户输入时决定何时将字段设置为NULL或空字符串?你怎么知道用户想要在没有检测焦点的情况下设置字段,或者他们是否删除了值...或......或......?

相关问题:我应该使用NULL还是空字符串来表示表列中没有数据?



1> dkretz..:

我将打破模式,并说我总是将NULL用于零长度字符串,原因如下.

    如果你开始细分空白的含义,那么你必须确保每个其他开发人员以相同的方式读取和写入它.

    你如何按字母顺序排列?

    您是否可以明确地确定用户何时省略输入值,与故意将其留空?

    您如何明确地查询差异?查询屏幕用户可以使用标准输入表单语法指示NULL与空白吗?

    在实践中,我从未被禁止使用此规则使用默认的,不令人惊讶的行为来读取和写入数据.如果我需要知道差异,我使用了一个布尔字段(更容易映射到明确的UI设备).在一种情况下,我使用触发器强制执行True => null值,但从未看到它被调用,因为BR层有效地过滤了条件.



2> tvanfosson..:

如果用户提供空字符串,我总是从数据库的角度将其视为空.另外,我通常会修剪我的字符串输入以删除前导/尾随空格,然后检查为空.这是使用varchar()类型在数据库中的小胜利,它也减少了搜索的情况,因为我只需要检查name is null而不是name is null or name = '' 你也可以转向另一种方式,将null转换为''.无论哪种方式,选择一种方式并保持一致.



3> Charlie Mart..:

你需要做的是弄清楚你想要的行为.关于如何解释名称字符串,没有一个固定的代数.

想想这里的状态机:你有几个状态的字段:它像你正在考虑"单元化"的状态,另一个"有目的地空"和第三个具有一些设定值的状态.你做的任何事情都会使得这个任务与你的程序的其余部分保持一致; 这听起来像是简单的映射

NULL→未初始化的
""→有目的地取消设置
名称→初始化.

推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有