mysql状态设计字段_Mysql数据库表字段设计优化(状态列)

一、传统用户状态设置

传统的数据库表中,涉及到状态的字段时,通常都会第一反应就是将其设置为0和1来表示。比如需求是,设计一张表来检查用户状态(绑定邮箱,绑定手机,实名认证,是否已经开通VIP),我以前会这样设计Java类。

UserInfo

@Getter

@Setter

public class UserInfo extends baseDomain{

private boolean realAuth;

private boolean bindPhone;

private boolean bindEmail;

private boolean vip;

}

如果是用0和1来表示,咋看起来挺合理的,但是仔细想想,是否真的能够满足我们的需求?(也不符合我们作为完美主义者的追求)

二、使用二进制来表示状态

我们使用二进制来表示状态看看效果。首先给每一个状态指定分配一个二进制,如

boolean realAuth 0001;

boolean bindPhonge 0010;

boolean vip 1000;

boolean bindEmail 0100;    那还有一个问题,就是在数据库中,使用int类型还是long类型?

诚然,初始状态码(java int 32 long 64),int 可以表示31种(除去0000),long可以表示63种(除去0000),当然不可能将0000赋值给初始状态,一般来讲,选择int还是long是根据具体业务需求来决定的。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部