100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > mysql状态设计字段_Mysql数据库表字段设计优化(状态列)

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

时间:2020-12-21 01:37:57

相关推荐

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类型?

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。