Java 中 Mysql 的状态列用 int 还是用 varchar 好点

2022-03-17 00:51:55 +08:00
 lslvxy

2022 了,现在还是用 1 ,2 ,3 数字表示状态么,还是用英文表示呢

8129 次点击
所在节点    程序员
67 条回复
CEBBCAT
2022-03-17 01:01:52 +08:00
确实有点难舍难分,我两种都用过,string 易读怕写错,tinyint 省空间查数据头大

btw ,这个和语言是不是没有关系?我写 Go 多一点
swulling
2022-03-17 01:06:00 +08:00
除非性能敏感,我喜欢用 string ,没必要省那一点点空间牺牲 sql 的可读性。
lslvxy
2022-03-17 01:12:41 +08:00
@swulling 我也比较喜欢用 string ,最近接了个老项目,数据库全是 12345 ,关键还没有数据字典和注释,全靠猜,真尼玛头大
westoy
2022-03-17 01:14:10 +08:00
要查询用 int , 否则随意

其实完全可以用个 hashmap 做封装啊
msg7086
2022-03-17 01:57:18 +08:00
不写 Java ,但我一般会搞一个 enum ,然后数据库里就用 int 来映射。
Bingchunmoli
2022-03-17 02:31:34 +08:00
@msg7086 写 java +1,我以为是规范,int 省内存太多了
pengtdyd
2022-03-17 02:49:15 +08:00
新手吧,有点开发经验的人都不会问这个问题
ericls
2022-03-17 07:03:46 +08:00
enum
MarioLuo
2022-03-17 07:58:09 +08:00
犹豫就用自己喜欢的那个,自从用了 mongo 就喜欢用枚举,数据库映射就是字符串,可读性高
aaniao002
2022-03-17 08:11:49 +08:00
我直接写中文状态+中文表头。 就是被其他 123456 项目迫害的。
nitmali
2022-03-17 08:29:17 +08:00
tinyint
bthulu
2022-03-17 08:36:44 +08:00
mysql 不是有 enum 类型么, 干么不用
LowBi
2022-03-17 08:45:02 +08:00
string 了,int 只能数字,而 string 还可以包含中文,数字等,不会限制太死
focuxin
2022-03-17 08:52:48 +08:00
数据库里 tinyint ,程序里就一个枚举类映射的事
seven123
2022-03-17 08:54:23 +08:00
2022 了,不用 enum 吗
wxw752
2022-03-17 09:01:56 +08:00
我还是习惯在 Java 里定义 enum ,数据库存 tinyint
VeryZero
2022-03-17 09:06:34 +08:00
Java:enum -> MySQL:tinyint

查询性能相差并不多。但是节约的沟通和转换成本就很可观。
banmuyutian
2022-03-17 09:13:23 +08:00
@bthulu #12
@seven123 #15
enum 类型每次加一种枚举的还得改一次 DDL
Rache1
2022-03-17 09:16:11 +08:00
代码里面用枚举,数据库存英文 (⊙ˍ⊙)
cando
2022-03-17 09:19:00 +08:00
用 tinyint 注释里维护 1-xx 2-xx

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

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

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

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

© 2021 V2EX