使用二进制代表状态(JAVA开发巧用二进制)

本文介绍了如何使用二进制来高效地表示和管理多种状态,如用户是否实名、绑定手机等。通过二进制的0和1来代表有无某个状态,避免为每种状态单独设置字段,从而节省数据库空间。文章提供了一个用户类的示例及状态工具类的代码实现。
摘要由CSDN通过智能技术生成

某些应用场景:如用户是否实名制,是否绑定手机号,是否会员等等,这些状态可以同时存在也可以只有某项存在,最简单的做法是,每个状态一个字段,如是否绑定手机号码一个字段(isBindPhone),是否会员一个字段(isAssociator),是否实名制(isRealName),如此便可完成以上状态的并存或者单个状态,那么问题来了,如果我后续业务中还有加入其他的状态如是否注册邮箱,是否绑定银行卡等等(又改需求)发火发火,如果一个字段一个字段加上去并非不可,只是工作量有点大,而且还需要修改数据库的表结构,让我们回想下linux系统中对文件的权限1,2,4,分别代表的是可执行,可写,可读,0则代表无权限,写到这里很多小伙伴应该是知道怎么使用了,这里用的是二进制的001代表可执行,010代表可写,100代表可读,那么只需要3位二进制数即可表示这三种状态的混合搭配,因为二进制只有0和1,0代表无,1代表有,如此一来再多可并发的状态只需要,一个状态加多一位二进制数即可偷笑

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值