有的数据可能为空白,一般是:
1 懒得管,自动 null
2 存个 '' 空字符串
3 留个 0 (整数 /字符)占个坑
大家平时哪个习惯多?
1 懒得管,自动 null
2 存个 '' 空字符串
3 留个 0 (整数 /字符)占个坑
大家平时哪个习惯多?
|
realpgDec 5, 2017
1
基本除非特殊情况,我的 mysql 的任何列都是禁止 null 的……
|
|
liuyao729Dec 5, 2017
2
0
|
|
3
如果是字符串类型就是空串, 如果是数字类型就是 0 或者 -1
千万别用 null, 坑到姥姥家 |
|
estDec 5, 2017
4
当然是留一个字符串 "Null"
|
|
whx20202Dec 6, 2017
6
在不同的数据库 /版本 /引擎下,null 经常在排序,count,索引需要额外注意,所以建议用默认值
|
|
kunluanbudangDec 6, 2017
7
可能几乎是共识了
禁止任何 NULL, 一般留一个表示「不合法情况」的默认值, 如 "" 0 什么的 |
|
nondaneeDec 6, 2017 via Android
8
为了 AVG()会用 null,其他情况""😂
|
|
yangqiDec 6, 2017
9
具体要根据字段含义来,空白和 Null 含义是不一样的,Null 表示该字段没有数据,空白则表示有数据,是空白。
|
|
love2075904Dec 6, 2017
10
@yangqi 同意,不过如果该列会参与排序就有点坑爹了。
|
|
paragonDec 6, 2017
11
null 和“”的语义是不一样的~
|
|
jjxDec 6, 2017
12
如果该字段要被查询, 就别用空, 否则 查询 field is null or field='' , 这个是不能走查询优化的
|
|
gouchaoerDec 6, 2017
13
avg 也可以用 case when 来避免 null 吧,如果你用-1 之类的来表示没有值啥的
|
|
esliznDec 6, 2017
14
还是看需求,而不是一味的禁止 null,禁止 join 等等,比如某个可选的唯一字段,可为 null 是最好的选择
|
|
ErroadDec 6, 2017
15
NOT NULL DEFAULT ""
|
|
metrxqinDec 11, 2017
16
取决于需求,如果业务属性存在以下三种情况:
1,可能压根不存在; 2,存在但为空; 3,存在不为空,则使用 NULL 作为默认值。 比如一个人的宠物名,存在压根没有宠物的情况,有宠物但没有起名。 |