在您的数据库和/或代码中。
您是否避免使用空值,还是明确编程以在逻辑中处理它们?
如何处理空值的最佳做法是什么?
答案 0 :(得分:1)
空值的一个基本问题是,对于它们的解释没有单一的普遍接受的含义,因此使用空值的结果经常是不一致的,并且与预期的含义不同。
通常,空值必须隐藏或稍微从最终用户中抽象出来。因此,如果开发人员决定将null放入数据库,他通常还必须确定如何在以后再次删除它。
由于这些原因,要么完全避免使用空值,要么最大限度地减少它们的使用。
如果您确实允许空值,那么您应该仔细定义这些空值的含义和正确处理,并确保您的代码正确处理它们。如果不使用空值,那么通常不需要这样做 - 尽管您可能希望设计代码,以便即使数据库中不存在空值也不会生成空值。
答案 1 :(得分:1)
Nulls“对于任何现有的SQL引擎都是不可避免的”和“数据管理的瘟疫和霍乱在一起”。
使用SQL时,关键是要记住您的SQL表实际上处于“物理设计”级别,您希望只保留同一对象的不同属性p1,p2,p3的单个记录,通过一些标识符I,作为单行(I,p1,p2,p3)。即使其中一些属性恰好是“未知”。 (我没有提到“N / A”。这个特殊含义暴露了设计缺陷。)
但是,SQL级别与您的应用程序(/用户)可能想要处理的“逻辑级别”截然不同,因为“逻辑级别”包含三个单独的各种断言的事实:“我有财产p1”,“我有财产p2”,“我有财产p3”。在 级别,您不希望被三个中的任何一个可能未知的事实所困扰。