首页 新闻 会员 周边 捐助

数据库中存储状态(代替枚举)

1
[待解决问题]

我现在系统中很多状态都是写到枚举中的,上线后如果需要增加一个状态我就需要重新加个枚举然后在上传文件,现在我想把状态放到数据库中,考虑到有的状态是整型的,就是的是用英文字母例如:A/B/C等做为状态的,在数据库上大家是怎么来进行设计的呢?  是不是都是用nvarchar作为字段的类型一起存放整型和英文字母呢?

代码中又是怎么来取值使用的?

这样放到数据库是不是比较麻烦的做法。

如果有做过类似的情况,麻烦分享一下,多谢了。

liyundong的主页 liyundong | 菜鸟二级 | 园豆:204
提问于:2012-05-28 13:57
< >
分享
所有回答(1)
0

建议使用[Flags]枚举,数据库就一个int类型字段。

dudu | 园豆:30925 (高人七级) | 2012-05-28 15:19

使用[Flags]枚举和我现在差不多了,我现在增加状态就要改动枚举所在文件需要上传的;

我这样做其实是想在增加枚举的时候只要数据库加一条纪录就搞定了的。

 

表:

Id                      int                          自增长Id

State                 nvarchar(20)/char等  状态

StateDescription nvarchar(100)           状态描述

Remark              nvarchar(100)           开发备注

Type                  tinyint                       类型

 

纪录例如:

 

Id

State

StateDescription

Remark

Type

 

1

0

性别

1

 

2

1

 

1

 

3

A

新下订单

订单状态

2

 

4

B

付款中订单

 

2

0

5

C

付款完成订单

 

2

 

6

R1

申请退款

退款状态

3

 

7

R2

退款完成

 

3

 

8

 

 

 

 

 

支持(0) 反对(0) liyundong | 园豆:204 (菜鸟二级) | 2012-05-28 15:37

@liyundong: 用一张表存储状态,通过Id进行关联。这个解决方法是合适的。

支持(0) 反对(0) dudu | 园豆:30925 (高人七级) | 2012-05-28 15:41

后期怎么扩充类型,我没想好,如果用修改硬编码不太灵活啊

支持(0) 反对(0) Halower | 园豆:1723 (小虾三级) | 2015-11-08 23:09
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册