数据库表某字段设置default为Null好,还是“”好,或者是Empty String好呢

最近开始给项目设计数据库,遇到一个可能很多人都会遇到的问题,就是设定某一个字段的默认值的时候,是设定null,“”,还是empty string呢?
首先我们从数据类型来分析这个问题:
我是phper,如果从PHP语言来看,要判断是不是空,用empty()这个函数,那么null和empty string 还有“”,结果都是一样的,但是如果从Java,C#这些更高级点的语言来判断,null 和 empty string还是有区别。null在这些高级语言里面就是什么都是空,但是empty string虽然是空,但是是字符串string类型。
然后我们从MySQL本身来看:

[plain] view plain copy

1:空值('')是不占用空间的
2: MySQL中的NULL其实是占用空间的。官方文档说明:
“NULL columns require additional space in the row to record whether their values are NULL. For MyISAM tables, each NULL column takes one bit extra, rounded up to the nearest byte.”

所以 mysql设计表时 建议不要用default NULL
string类型的可以default ''或者emptystring
int类型的可以default 0
另外一点,从不同的项目开发去分析这个问题:
以前单纯做web网页端,对这个默认值设定问题选用null 还是empty string。但是后来在另外一个团队开发app的时候,这个null和empty string的问题就尤为突出,因为我是用php做接口开发,如果一旦出现null的数据类型,没有处理直接返回去前端,那么无论是iOS还是Android端,如果没有处理好这个空的判断,要么就直接输出null,要么程序直接报错。所有建议设计数据库的时候默认值尽量少用null.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,268评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,839评论 18 399
  • 什么是数据库? 数据库是存储数据的集合的单独的应用程序。每个数据库具有一个或多个不同的API,用于创建,访问,管理...
    chen_000阅读 4,075评论 0 19
  • MySQL 数据库常用命令 1、MySQL常用命令 create database name; 创建数据库 use...
    55lover阅读 4,870评论 1 57
  • 文/海芬 垄上野菊香 银杏叶儿黄 冬寒步履欢 健身心舒畅 迎着冬日阳光 徒步乡村道上 银杏野菊金灿 阳光暖照心房
    海语天籁阅读 475评论 1 8