获得徽章 0
赞了这篇文章
赞了这篇沸点
#论所有的数据[类型]都不应该为null NULL/Null/null/nil/undefine值的发明可能并不属于早期程序语言设计的失误,它可能仅仅为更好表达一个内存意义上的概念(未分配内存/空指针),但坏就坏在了它在后期程序语言和具体编程中被极大地滥用,以致无论在数据库还是应用程序,它都成了一个怪胎,带来各种各样的问题。可以大胆设想所有的数据[类型]都不应该为null,理由如下:无论静态或是动态类型语言,一个变量如果有用或被用到,它的类型最终会确认,而如果一个“有用”的变量必然存在类型,那么如果类型为string,那么表示string的值为空应为''或"",而不应该是Null,如果类型为number,那么表示number的空值可以近似的表示为0(0与任何与的运算都是符合它为空的预期,否则我们无法表达),也不应该为null,如果类型为timestamp,那么可以根据业务场景使用它的默认值为当前时间或者纪元始初时间。其他类型可依次类推。我已经在接下来的数据库设计上要求所有字段均不可为null(通过给予默认空值), 并且在应用程序中杜绝产生新的null值,期待一个没有null的美好世界。
展开
评论
1
赞了这篇沸点
无论在数据库还是应用程序里,null都是个怪胎,因此,在数据库设计中应完全杜绝字段的值为null,所有的字段都应该设为not null,并对业务逻辑无法立即确定的字段给予默认值。在应用程序中也应完全杜绝将变量的默认值设为null.
1
3
赞了这篇文章
赞了这篇文章
产品
产品经理
人工智能
Ant Design
Redux
Rust