Java 中的枚举类型和 mysql 的 enum 配合用来存储状态字段,有什么优缺点?

2019-01-11 14:55:39 +08:00
 VeryZero
之前一直用整型保存订单状态之类的字段,好像别人也都是这么干的。但是 mysql 有 enum 字段啊,不管从可读性还是维护性上来说都比整型强吧,为什么用的不多呢,是里面有什么坑吗?
3197 次点击
所在节点    Java
8 条回复
cyspy
2019-01-11 15:01:10 +08:00
想加一种订单状态时就想哭了
VeryZero
2019-01-11 15:05:40 +08:00
@cyspy 不应该啊,改下表结构不就行了?
DovaKeen
2019-01-11 15:10:38 +08:00
@VeryZero 生产中改表结构会不会很麻烦
VeryZero
2019-01-11 15:13:43 +08:00
@DovaKeen 一个项目上线以后,表结构不可能一直不变吧,总有新需求需要新增或者修改字段的。这个理由有点牵强啊。
hihipp
2019-01-11 15:16:50 +08:00
如果 Java 部分是提供 SDK 那种,新增订单状态,没更新 SDK 正在跑得程序就要哭了。
debugjoker
2019-01-11 15:30:33 +08:00
可参考同样的问题 /t/233301
helone
2019-01-11 15:39:36 +08:00
在大部分公司中,更改表结构都是一个很麻烦的事情,添加新表、添加新字段这些都还好,更改现有字段结构及删除字段在我待过的公司都是明令禁止的操作,尤其是在一些运维比较完善的公司,除非你有充分的理由且有权限的人批准

所以就越来越少人用 enum,正如一楼提到的,如果要添加一种订单状态,你需要改表结构(部分大公司不一定行得通),还需要改代码,明明用 tinyint 改下代码就可以跑了,非要强行增加难度,而且这个难度对性能基本没提升,干嘛要这样?
gaius
2019-01-11 15:39:43 +08:00
改表可能就不是你一个应用要重启

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

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

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

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

© 2021 V2EX