N个状态在数据库中的简便使用定义方式

我们在做项目的时候(比如做一个消息的状态,它有:已发送,已阅读,已删除,已回复等等),像这样的情况的时候,我们一般的做法是在数据库中加入N个字段来存放它的状态。

但是如果我们需要增加一个状态的时候怎么办呢,继续去修改数据库吗?这样明显不行,这里我向大家推荐一种方式:

使用一个字段来存所有状态。

首先我们这个状态应该是个什么样子呢,朋友向我推荐了一种方式:二进制。

为什么是二进制呢,因为像这种状态的字段我们一般都是用一个Ture/False去判断吧,这样就说的通了,我们先用二进制来试试。而且使用二进制我们将它转换为Int的数值的时候,只要一种状态发生变化,那么它的结果就完全不一样。

具体怎么实现呢:

  首先我们先定义一个枚举类型,这个枚举类里面存放的都是一些状态,将需要的状态=1就可以了。

  然后我们怎么去区别这个状态,比如我们枚举里有一个状态:删除 如果它是已删除的状态那么我们在数据库中写上一个1,如果不是则写成0。这样就可以区别了,然后我们再加一个状态:已读 加了之后我们的枚举类里面的状态就出现了这样:00 10 11 01 四个状态,我们再写入数据库,这样我们判断的时候只需要将这个枚举类中的二进制转换为数值再和数据库中的二进制来对比,直接将结果写入数据库就可以了。

原文地址:https://www.cnblogs.com/suchi/p/4789715.html