创建要求开发人员为所有空列指定默认值的策略是否有任何优点?所有空列的默认值
Q
所有空列的默认值
2
A
回答
0
是,一致性
保持每个人都在同一页上是重要的,这将确保您的开发者不会在生产得到意想不到的价值。
我认为这是一个好主意。
3
如果您需要所有NULL列的DEFAULT值,则可以将它们全部设置为NOT NULL!
1
归因于它们涉及的三个值逻辑,空值通常是混淆的来源。例如,查询...
select * from employee where job != 'MANAGER'
...可能会返回所有不是经理的员工。然而,当然,如果JOB可以为空,那么这个查询将不会返回JOB为空的雇员。
这可能是这是默认值策略背后的基本原理。
1
指定默认值只会改变问题,因为基本上这些默认值与空值具有相同的“含义”,因此您将面临要求在代码中包含特殊外壳来处理“特殊含义”那些“特殊价值”。
0
@TonyAndrews:
......可以预料到返回谁不是经理的所有员工。然而,当然,如果JOB可以为空,那么这个查询将不会返回JOB为空的雇员。这可能是这是默认值策略背后的基本原理....
NULL是为了处理缺失值而发明的, 您正在要求DBMS返回哪些作业不是'经理'的行;这确实意味着不会将我的工作回报给我。如果你想要失业,那就是另外一个问题。
想象一下,可能有些经理在那里他们的工作领域是NULL(缺少,没有输入),所以如果数据库返回它们,查询的结果将是绝对错误的!
回到主要问题,我认为如果一个字段是NULL允许它应该在NULL的情况下,如果缺少值,否则如果该字段永远不会缺少值(或始终需要默认值)只是使它不为NULL默认值。这是基于特定条件下的业务逻辑。
相关问题
- 1. 添加默认值不为空的列。
- 2. 选择具有空值或“默认”值的特定列的行
- 3. 空和默认值
- 4. 默认列值
- 5. 默认列值
- 6. 值为空或默认值
- 7. PowerShell:所有对象的默认列宽
- 8. MySQL的空默认空值和默认空值之间的区别?
- 9. 使用默认值填充非空列之间的空列
- 10. jQuery:将默认值放在所有空文本框中
- 11. 将findbugs设置为默认值,作为包下的所有类的默认值
- 12. 带有空白默认值的JSP下拉列表
- 13. 在DataGridView中设置所有列运行时间的默认值
- 14. jqgrid - 将setcolumns后的所有列重置为默认值
- 15. MySql将列中的所有字段更新为默认值
- 16. 将空列表分配给具有默认值的StringListProperty会导致实体具有默认值?
- 17. TSQL默认列值
- 18. 使用默认值FIREBIRD将空值插入到非空列中
- 19. 默认情况下,在sql datetime列中插入空值/空值
- 20. 具有默认值的列 - usql
- 21. SQLite添加具有默认值的列
- 22. 添加具有默认值的列?
- 23. Schema.Types.ObjectId默认值非空
- 24. UIPickerView默认值为空
- 25. UIDatePicker默认返回空值?
- 26. 春@Value空列表默认
- 27. Spark默认空列DataSet
- 28. Android:空默认HttpClient队列
- 29. DataBind上的默认值为空值
- 30. 更改列的默认值
对于某些商业案例来说,尽管列有默认值,但空值仍然是合法值吗? – 2010-04-09 04:01:17
可以将NULL置于具有缺省值的可空列中。我会想象,在大多数情况下,这将被视为一个错误(忘记使列不为空)。开发人员会说“哎呀,我以为我在列上有一个默认值,为什么我有那么多的空值?”只有在不指定插入中的列时,或者如果指定它并传入DEFAULT关键字,才会使用默认值。然而,生意是一件有趣的事情,所以我猜想任何疯狂的要求都是可能的。用户说我希望该字段默认为零,但也有时可能是未知的。 – 2010-04-09 11:13:57