何时在列中使用Null与N / A?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了何时在列中使用Null与N / A?相关的知识,希望对你有一定的参考价值。

假设表中有2列:FixedSalary和HourlyRate。其中一列的价值总是会丢失,因为员工无法获得固定工资和小时工资。

现在,假设我有另一个表HairColor列。您正在为秃头患者更新一行。该值将丢失。

对于这两个示例,我们可以使用Null值或类似“N / A”或“不适用”的值。我想知道,是否存在关于这些情况的最佳(数据库设计)实践,其中明显缺乏价值,但缺乏价值是出于一个非常明确的逻辑原因?

答案

像往常一样,这取决于。在这里,它取决于您希望在写入数据的应用程序和读取它的应用程序之间传递的消息。

NULL通常传达消息“此位置没有值”。通常所有读者都需要知道。特别是,在每小时与工资的情况下,一个结构良好的读者应用程序不应该特别惊讶于其中一个缺失,在每种情况下。

只有当数据的读者在数据丢失时表现为单向的行为因为它不适用时才会真正需要一个表示“不适用”的特殊值,并且当出于不同原因(例如用户)丢失数据时,会出现另一种不同的方式输入表格上的遗漏。这可能是头发颜色的情况,但这取决于你的情况。

最佳做法是分析您的案例,并进行相应的设计。

另一答案

最佳实践是Null

编辑

空值是首选,因为它允许数据库引擎和客户端程序自动正确处理此值,而无需为此编写自定义代码。 (想想例如排序值)

另一答案

根据我的数据库知识,Nullnull是一个关键字。用户定义Not ApplicableN/A的地方。所以这一切都取决于你如何解析结果集。

你更喜欢什么,rs.getString(COLUMN_NAME);返回nullN/A

据我说,null会很好,因为,很容易检查!= null

以上是关于何时在列中使用Null与N / A?的主要内容,如果未能解决你的问题,请参考以下文章

MySQL - 无法在列中插入 NULL 值,但我指定了默认值?

MySQL - 无法在列中插入 NULL 值,但我指定了默认值?

将行与标题进行比较,然后在列中插入值并在 VBA 中进行重复检查

如果它们与使用 vba 的条件匹配,则在列中查找最小值和中值

R 提取最常见的单词)/ n 克在列中按组

Power Query:在列中出现值后删除下 n 行