关于数据库设计的一个小问题

2015-07-20 20:55:31 +08:00
 cjyang1128

比如表中有一个字段type,它一共有三种值,比如A,B,C。那么是用整形1,2,3来代表A,B,C好,还是直接存A,B,C好。然后需要加索引吗?希望各位前辈指点!

2069 次点击
所在节点    问与答
13 条回复
line
2015-07-20 21:14:10 +08:00
1. 都可以, 用char(1) 会好点
2. 加不加索引是看你会不会常用这个字段定位数据.
huijiewei
2015-07-20 22:21:41 +08:00
enum 符合
davems
2015-07-20 23:52:23 +08:00
MySQL 的话可以用 tinyint (1) 然后存1,2,3
jackysc
2015-07-20 23:59:38 +08:00
二楼+1
yangqi
2015-07-21 00:01:09 +08:00
@huijiewei 这个要看具体字段的含义,是否有可能添加值
iyangyuan
2015-07-21 08:30:32 +08:00
我一般是用整型,从来不用char,char在java程序里很难处理
FanError
2015-07-21 08:42:32 +08:00
@iyangyuan 是有其它什么特殊情况char难处理吗?我一直都是rs.getString出来,和读varchar没啥区别呀
b821025551b
2015-07-21 11:00:52 +08:00
unsigned tinyint,还可以扩展200多个选项 XD
msg7086
2015-07-21 12:36:23 +08:00
不用枚举的理由是?
huijiewei
2015-07-21 13:47:10 +08:00
@yangqi 楼主的条件已经限定了,你和我说具体含义是否添加值?
yangqi
2015-07-21 21:09:26 +08:00
@huijiewei 楼主的条件是现在的条件,但是根据场景该字段以后有可能会有D,E,F等选项啊,你的明白?
huijiewei
2015-07-21 22:45:35 +08:00
@yangqi 楼主说场景了?
yangqi
2015-07-21 22:48:42 +08:00
@huijiewei 就是因为没说我才提示要考虑到场景啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/207056

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX