本文主要是介绍数据库字段打标,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、背景
前两天系统要增加了一个功能,需要统计出客户无发票退货原因报表,这个需要把无发票退货订单标记出来,这种最常规的做法就是增加一个字段,但加字段方式不可扩展,尤其是当表数据量大更改表结构困难的时候,这时我们可以考虑用二进制标记位来做,这种做法在大厂里应用得非常普遍,我们在牛奶项目的用户表中也有应用,下面介绍一下使用方法。
二、二进制与位运算
数据库中使用Int类型来存储用户标记,用2的次幂代表一种状态,比如2^0代表合伙人,2^1代表经过实名认证,2^3 代表经销商 ,2^4代表VIP合伙人,每个二进制位标记只包含两个含义:即有或没有。
三、打标、去标、读标
打标:把字段某个Bit位设为1,用的是或操作,对其它标记位没有影响。
去标:把字段某个Bit位设为0,用的是与操作(只有要去掉的位设为0,其它位全部设为1),对其它标记位也没有影响。
读标:判断标对应的位为1,用的是与操作。
四、打标例子代码
这篇关于数据库字段打标的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!