在数据库中存枚举值,用数字还是字符好?

我之前一直用INT或TINYINT来存枚举值,但发现这样有一个缺点,就是单从数字上没法知道枚举值,只能查文档,而用CHAR的话就比较明了了,例如:order_idorde... 我之前一直用INT或TINYINT来存枚举值,但发现这样有一个缺点,就是单从数字上没法知道枚举值,只能查文档,而用CHAR的话就比较明了了,例如:
order_id order_status
1 SUCS(成功success)
2 PCES(处理process)
另外,用CHAR的话,从数据库转换实体也会比较方便(java)。如果用数字的话,要么就依赖枚举类型的ordinal(万一谁把枚举的顺序换一下就傻X了),要么就自己加个code字段(麻烦)
不知道各位在实际项目中是如何处理的?用数字和字符各有什么优劣?
展开
 我来答
匿名用户
2013-02-22
展开全部
这个要看你的 枚举, 是 仅仅一次只能选择一个的? 还是一次可以选择多个的.

例如你的
order_id order_status
1 SUCS(成功success)
2 PCES(处理process)

某行数据, 要么就是 SUCS(成功success) , 要么就是 PCES(处理process)
这种情况下, 用字符是比较合适的。

但是如果枚举是可以选择多个的, 例如:
id desc
1 无党派
2 知识分子
4 少数民族
8 女性
16 ......

这种情况下, 如果一个人, 多个枚举都满足的情况下, 那么这种情况下, 使用 数字 是比较适合的。
也就是
如果某个人,是 无党派汉族女性研究生, 那么枚举值 = 1+2+8
chenziying0
2013-02-22 · 超过10用户采纳过TA的回答
知道答主
回答量:75
采纳率:0%
帮助的人:32.9万
展开全部
.做个字典表 试试。这样就不怕 忘了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
szm341
推荐于2017-12-16 · TA获得超过6726个赞
知道大有可为答主
回答量:5005
采纳率:100%
帮助的人:5164万
展开全部
一般在主表上存储的是枚举值,另建立一个值对应说明表,查询时关联取出说明内容
追问
你好,我想问的是用什么类型的列来存枚举值呢?是TINYINT还是CHAR(N)?
追答
如果字符固定建议用char(x),定长类型效率高
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式