gpt4 book ai didi

database - 处理用户输入时 NULL 与 Empty

转载 作者:太空狗 更新时间:2023-10-30 01:47:56 25 4
gpt4 key购买 nike

是的,另一个 NULL 与空字符串的问题。

我同意 NULL 表示未设置的想法,而空字符串表示“一个空值”。这是我的问题:如果列的默认值为 NULL,我如何允许用户输入该 NULL。

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

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

那么,我的问题是,在接收用户输入时,您如何决定何时将字段设置为 NULL 或空字符串?您如何知道用户希望在未检测到焦点的情况下不设置该字段,或者他们是否删除了值...或...或...?

相关问题:Should I use NULL or an empty string to represent no data in table column?

最佳答案

我会打破这种模式,并说我将始终对零长度字符串使用 NULL,原因如下。

  1. 如果您开始细化空白的含义,那么您必须以某种方式确保所有其他开发人员以相同的方式读取和写入它。

  2. 如何按字母顺序排列?

  3. 与故意留空相比,您能否明确确定用户何时省略输入值?

  4. 您将如何明确查询差异?查询屏幕用户能否使用标准输入表单语法指示 NULL 与空白?

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

关于database - 处理用户输入时 NULL 与 Empty,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/405909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com