在数据库设计中,状态字段(如status)用0代表成功还是失败,有所谓吗?

场景


数据库表中出场率非常高的一类字段就是状态(如status、state等),现在我正在设计一个数据库表,状态字段有“正常”和“注销”两种状态值。通常会出现以下两种使用方式:

0:正常,1:注销

0:注销,1:正常

有些人用第一种,有些人用第二种,有区别吗?

  • 使用第一种方式的蜀黍,我不知道你们怎么想的。
  • 我猜(瞎猜的不一定对)使用第二种方式的小哥哥,想到了boolean类型0表示假、1表示真,所以0代表注销、1代表正常,逻辑非常严谨一致。

剧情发展


就在这千钧一发的时刻,系统迭代过程中增加了几个状态,比如:锁定、过期、拉黑,再比较一下两种方式:

0:正常,1:注销,2:锁定,3:过期,4:拉黑

0:注销,1:正常,2:锁定,3:过期,4:拉黑

这时候,是不是看到一点区别了,有没有发现第一种方式更优雅? 为什么呢?

因为「幸福的家庭都是相似的,不幸的家庭各有各的不幸」?

正常状态只有一种用0表示,1、2、3等分别代表不同的异常情况。好像有点道理啊,更何况还有意外收获,可以用 status > 0 检索所有异常状态。

胡言乱语


再提醒一下上边逻辑严谨一致的那位小哥哥,此处字段名是status而且是数值类型,与boolean类型没有任何瓜葛。如果你的字段名是是is_deleted,我认为你用0代表非、1代表是,那才真是逻辑严谨。

以上就是我的一些胡言乱语,如果你们觉得有点道理,希望帮到你们,如果有说错的地方希望和大家撕逼,哈哈,谢谢!

转载于:https://juejin.im/post/5c6ecea1e51d456598092a96

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值