平常自己设计字段的时候都是 0 无效, 1 有效(或非 0 有效),感觉是学 C 语言遗留下来的, C 语言里 if 判断 0 为 false ,其他整数都是 true 。但是工作的时候发现有些同事以及合作方的文档里面好多 0 有效, 1 无效,不明白为什么会有这个习惯或者出处是哪里,大家都是怎么标记的。
1
dofy 2016-10-17 15:06:38 +08:00
这得看字段的语义, 0 和 1 一般表示 off 和 on ,
如果字段意思是“使无效”,那值 1 表示 on ,自然就代表“无效”。 |
2
juneszh 2016-10-17 15:09:57 +08:00
当无效状态比较多时如 1234 ,就用 0 标识有效比较实用了,不过这种情况应该叫 error 而不是 status 了, API 这样用比较多
|
3
bearice 2016-10-17 15:10:48 +08:00
0=false 非 0=true <== 把 int 当 boolean 用
0=success 非 0=error_code <== 把 int 当 int 用 |
4
yhxx 2016-10-17 15:11:12 +08:00
刚刚用到的一个接口里的 : 0 草稿, 1 进行中, 3 已结束,-1 已删除
没有 2 |
5
csx163 2016-10-17 15:12:47 +08:00
的确有些地方 0 是无异常的意思
|
6
flight2006 OP @juneszh 明白了,正确的状态只有一个,而异常 /错误的状态有多种,用 0 标记正常就比较合适
|
7
xenme 2016-10-17 15:39:58 +08:00
win32 api, return 0 都是正常,正数是结果,负数是异常代码,是否有人受这个影响,然后 0 是正常,其他都异常
|
8
tonghuashuai 2016-10-17 16:36:45 +08:00 2
应该这么解释:幸福的人都是一样的,不幸的人各有个的不幸。
|
9
sensui7 2016-10-17 16:47:26 +08:00
干脆用字符串算了'on', 'off', 'pending', 'error', 'unavailable'
|
10
chnhyg 2016-10-17 16:53:28 +08:00
我们的数据库的设计有关这方面的规范:
1 、仅两种可能性且含义相反,并确保绝对不可能出现第三种可能性的字段使用 bit 类型。比如 IsSuccess 字段的:成功、失败。且使用有意义的前缀,比如 Is 、 Can 、 Has 等等。 2 、 N 种可能性且含义不相反的字段使用 tinyint 类型。比如 Gender 字段的:男、女。 3 、有可能出现第三种可能性的也使用 tinyint 类型。比如 Gender 字段的:保密。 4 、 tinyint 必须从 1 开始,不得从 0 开始。 |
11
shlabc 2016-10-17 17:09:24 +08:00
要看量级
数值型占用的存储空间、所需索引存储空间大多小于字符型 小型系统中,字符型有利于扩展,大型系统中,尽量用数值型吧 个人喜欢默认为 0 (不同的业务场景表达不同的意思) |
12
sorra 2016-10-17 17:26:07 +08:00
为了预防误会,我会尽量不用 0 ,从 1 开始。
|
13
benpichu 2016-10-17 18:21:02 +08:00 via Android
[使用 enum 比较好(]
|
14
fxxkgw 2016-10-17 18:37:19 +08:00
虽然很久不写 C 了 但我记得 C 中 0 是代表返回正确的啊。。
|
16
lln133208 2016-10-18 09:17:48 +08:00
UNIX/Linux 中系统调用一般返回值为 0 时表明调用成功,返回-1 表明有 error 。我觉得是受这个影响。
|