密通学院

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3760|回复: 0

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

  [复制链接]

282

主题

27

回帖

8万

铜板

超级版主

Rank: 8Rank: 8

积分
89153
QQ
发表于 2018-12-20 10:26:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我们都会遇到一个可能很多人关注的问题,就是设定某一个字段的默认值的时候,是设定null,“”,还是empty string呢?

首先我们从数据类型来分析这个问题:

我是phper,如果从php语言来看,要判断是不是空,用empty()这个函数,那么null和empty string 还有“”,结果都是一样的,但是如果从java,C#这些更高级点的语言来判断,null 和 empty string还是有区别。null在这些高级语言里面就是什么都是空,但是empty string虽然是空,但是是字符串string类型。

然后我们从mysql本身来看:
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.
如果您有业务需求,可以和我联系:
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

首页|Archiver|手机版|小黑屋|密通学院:专业网络营销服务商

GMT+8, 2024-12-22 18:29 , Processed in 0.089843 second(s), 24 queries QQ

Powered by XMT Inc. © 2015-2025 ArrayV1.0 豫ICP备17022382号

系统运营:密城通 豫公网安备 41018302000212 号

快速回复 返回顶部 返回列表