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

问题描述 投票:2回答:3

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

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

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

database database-design database-schema
3个回答
4
投票

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

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

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

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


1
投票

最佳实践是Null

编辑

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


0
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.