0
A
回答
1
零值的一个基本问题是,它们的解释没有单一的普遍接受的含义,因此使用空值的结果经常不一致并且与预期意义不同。
通常,空值必须隐藏或从最终用户中抽象出来。因此,如果开发人员决定将空值放入数据库中,他通常还必须确定如何在稍后再次删除它。
由于这些原因,完全避免使用空值或最大限度地减少它们的使用是有意义的。
如果您确实允许使用空值,那么您应该仔细定义这些空值的含义并对其进行正确处理,并确保您的代码正确处理它们。如果你不使用空值,那么你通常不需要这样做 - 尽管你可能想要设计你的代码,以至于即使数据库中不存在空值也不会生成空值。
1
空是“不可避免的与任何现有的SQL引擎”和“数据管理的瘟疫和霍乱一体化”。
使用SQL时,关键是要记住,您的SQL表确实处于“物理设计”级别,您希望只保留同一对象的不同属性p1,p2,p3的单个记录,由一些标识符I识别为单行(I,p1,p2,p3)。即使其中一些属性碰巧“未知”。 (我没有提到“N/A”,这个特殊含义暴露了设计缺陷)
但是,SQL级别与您的应用程序(/用户)可能想要的“逻辑级别”来处理,因为那个“逻辑层次”包含三个单独的种事实断言:“我有属性p1”,“我有属性p2”和“我有属性p3”。在即的水平,你不想被这三个中的任何一个都未知的事实所困扰。
相关问题
- 1. 处理NumberFormatExeption的最佳做法
- 2. 处理UI事件的最佳做法
- 3. 关于JavaScript Promise的最佳做法
- 4. wcf连接处理最佳做法
- 5. 最佳做法异常处理
- 6. 处理DynamoDB的最佳做法batchGetItem的未处理键
- 7. 关于进销存表和税收处理的最佳做法建议
- 8. 处理表单处理的最佳做法
- 9. 关于何处放置方法查询两个模型的最佳做法
- 10. 在ReactJS中处理空值的最佳方法是什么?
- 11. 处理/清理用户名(口音,标点,...)的最佳做法?
- 12. 处理重复方法调用的最佳做法是什么?
- 13. 异步/等待方法和异常处理的最佳做法
- 14. 关于JSON转换和相关对象的最佳做法Backand
- 15. 在Laravel中处理空的雄辩查询的最佳做法是什么?
- 16. 处理WCF项目中未处理的异常的最佳做法?
- 17. .net服务层中的异常处理的最佳做法
- 18. 处理Django中的全球500错误的最佳做法?
- 19. 什么是在C#中的文件处理的最佳做法?
- 20. Flash Builder用于处理项目的多个版本的最佳做法
- 21. 清理Unicode输入的最佳做法
- 22. 处理联系表单的最佳做法是什么?
- 23. 处理数据库时的最佳做法
- 24. 在C中处理货币金额的最佳做法#
- 25. 处理非持续属性,频繁更新的最佳做法
- 26. 处理应用程序配置的最佳做法是什么?
- 27. 处理内存不足错误的最佳做法是什么?
- 28. 处理文件和路径的最佳做法是什么?
- 29. 使用JavaScript处理事件的最佳做法
- 30. Android:处理JSON数据的最佳做法
这取决于你订阅哪个哲学。有些人不允许在数据库中存在空值。我更喜欢在任何地方使用它们。 – 2010-08-27 09:48:07
这取决于。我倾向于使用NULL作为“这部分数据未知或未指定”。 (你能标记社区Wiki的问题吗?没有“最好”的答案可能) – Piskvor 2010-08-27 09:50:16
问一个更具体的问题可能会更好。这太笼统了,它取决于你需要做什么以及你编写什么样的软件。 – 2010-08-27 10:06:57