2014-03-01 34 views
-1

在我在这个论坛的第一个问题,我了解到,MySQL对待NULLempty string不同。作为一个以数据库为中心的开发人员,我可以接受这一点,甚至可以看到它的潜在用途。但我不明白这是如何在实际的应用程序与前端应用程序的作品。MySQL的:NULL与空字符串与前端应用

假设您有一个用于输入联系信息的php应用程序。如果(在数据库中),该人的中间名是NULL,这意味着我们不知道该人是否有中间名。

如果是empty string,我们知道该人没有中间名。

但是,在网页的形式,你可以做出这种区别?我不知道如何。我看不到使用(以及从未见过)的复选框或选项,以告诉应用程序文本字段未知与空(无)。

所以,请赐教,告诉我如何在数据库中加以区分,为全局增添价值。

谢谢。

+0

Null与'data'分开存在。除非你有一个复选框来表示空值,否则你不能区分null-as-empty-string v.s. null-as-unknown-value –

+0

是的,但你有没有见过这样做?我还没有。那么为什么MySQL如果没有切实可行的方法来利用这种区别,那么它们会以不同的方式对待它们呢? –

+0

,因为“未知”与“空字符串”或“0”不同。考虑一个可能存在记录但其价值未知的财务应用程序。如果您将这些记录的值设置为0并执行“选择平均(价格)”,那么这些0将影响实际平均值。如果它们为空,它们将被忽略并且不会影响平均值。一个空的中间名将是“不知道他们的名字是什么”。一个空白字符串是“他们根本没有中间名”。 –

回答

0

在你给出的例子中,不,我不认为会有一种方法来与用户通信该字段为NULL,或者允许用户指定NULL而不是简单地为空/空。

由于null的概念对最终用户来说是一种不必要的困难,所以我认为一般情况下,您会尝试将问题和提示短语放在他们理解的术语中,并在后端决定该信息需要的方式被存储和处理。