Sou*_*nda 56 null database-agnostic
我正在BBC 上阅读这篇文章。它讲述了一个名叫 Jenifer Null 的人的故事,以及她在使用在线数据库(如预订机票、网上银行等)时如何面对日常问题。
我不精通数据库,也不经常使用它。我在做学习网站的时候,服务器端表单验证使用了正则表达式。据我所知,它很乐意接受“Null”这个名字。我还没有尝试过。
有人可以解释这种情况发生时的技术细节吗?表单验证只是在string == NULL做某事吗?即使这样我也不认为NULL is same as "NULL"。
Bil*_*hor 43
我见过将“null”作为空列的字符串返回的数据库接口(例如框架库)。我相信有一个标志可以打开或关闭它以进行调试。此标志允许开发人员轻松确定空字段是空值还是空值的结果。这是一个糟糕的设置,尤其是在生产中,并且可以解释文章中解释的问题。
将“空”转换为空值的反向处理应该会为名称字段生成应用程序错误。我希望这会很快得到解决。
小智 25
你的很大一部分困惑很可能来自记者。文章讨论了使用整个应用程序系统的问题,而不仅仅是数据库。完全合理,因为这是一篇针对大众消费的文章,但技术细节被作者掩盖或误解了。
其中许多问题可能是由应用程序层引起的,而不是数据库的 API。魔法值是一种反模式,很难从这个行业中剔除。一些程序员很容易写出类似“有人输入了‘null’?他们一定意味着没有值,因为这就是 null 的含义!”这样的条件。防止 SQL 注入的错误尝试也可能是上述对 Null 或包含单引号的夏威夷姓氏的错误处理的原因,这也是标准的 SQL 字符串分隔符。
如果业务逻辑或数据库约束需要不同的东西,那么错误地将这些值转换为 NULL 或空字符串的应用程序很容易产生错误。这自然会导致文章中描述的令人沮丧的用户体验。
小智 19
文章本身包含一个指向Stack Overflow 问题的链接,该问题演示了该问题;它在一个 Flex 应用程序中,其中的代码:
currentChild.appendChild("Fred");
Run Code Online (Sandbox Code Playgroud)
将包含单词的元素附加Fred到 XML 文档,但代码:
currentChild.appendChild("null");
Run Code Online (Sandbox Code Playgroud)
将附加一个空元素,而不是包含文本“null”的元素。
XML 本身对于文本值“NULL”没有问题,因此包含这样的文本没有问题。实际上,NULL在 XML 中根本没有什么特别的意义。
Wer*_*rCD 13
我认为我没有提到的一件事:我们不只是在谈论 SQL。
该名称可能在数据库中开始/结束......但要到达那里通常涉及多个通道。数据库、Sql、php、html、javascript... Java、C#、VB、Perl、Phython、Ruby、bash、batch 等等等等...
管道中的每个步骤都可能涉及将数据从一种格式转换为另一种格式。从 Sql 表,到 json,到 xml,到 CSV 等...
在这个复杂的链条中的任何一点,它都只需要一个糟糕的编程或一种模糊的编程语言(例如JavaScript空处理)......
所以不要把自己限制在数据库中的问题上......因为它可以在“堆栈”中的任何地方。
| 归档时间: |
|
| 查看次数: |
20673 次 |
| 最近记录: |