关于数据库枚举字段设计思考
2018-12-29 本文已影响158人
Real_man
系统大了之后,表中要存储的东西就会变多,如果表设计的不好很可能出现一个表几百个字段,表的设计有很多要学的,今天就考虑一下枚举字段的存储。
案例
表中可能涉及到的类型很多:
- 订单类型(不同系统下的订单)
- 付款渠道
- 付款科目
- 操作类型(冻结,支付,解冻,撤销,回流)
- 调用的系统(那个系统调用的)
在数据库中存储,可以使用int类型或者varchar类型,对应Java中的Integer和String类型。那么要怎么存才是好的呢
int: 优点节省空间,缺点在查表的时候要查数字对应的含义
varchar: 空间比int多一点,但是意思明确
方案
- 没有比较和自动化处理的地方,就是为了一个标志。其含义大于对其处理,就是主要是为了给人看的,那存储为字符串类型,方便查看
- 如果需要内部做一些比较,主要是为了程序处理的,那么存储为数字,效率也高
额外
在定义枚举的时候,一般除了数字,还要定义其含义。如下
image最后
设计数据库的时候一点小思考。