雅乐网

计算机技术、学习成长

编程 » C/C++ » 又是令人痛恨的数据库问题,使用枚举需注意!一定要赋值

又是令人痛恨的数据库问题,使用枚举需注意!一定要赋值

jhwnz

项目里有个多账户登录功能,包括普通的用户名密码登录、匿名登录、facebook登录、google登录,为了区分用户类型就建了个枚举

注意这里是没有设置枚举值的,默认是0、1、2、3

同时还有个用了类似代码的项目,只不过fb、gg换成了微博、微信登录

这两个项目用了相似的代码,我便决定合成一个项目,枚举的部分改成了

直接用起来看似没什么问题。但联系到数据库上就要出问题了,项目中要保存用户类型进数据库,枚举值在存进去时其实是int类型的数字。也就是用了上述第三个枚举后,使用wb、wx的那个项目,数据库里存着的0、1对应的不是wb、wx而是fb、gg了。

这个bug的副作用可小可大,小的导致图标错乱,大的可能导致无法登录、账号丢失。总之,枚举一定要赋值。

如果当初设计的时候就考虑到这一点,给用户类型枚举赋不同的值,就不会有这种bug了。

现在的解决办法只能是那个使用wb、wx的项目,数据库加个更新操作,把fb(0)、gg(1)的账户类型更新成wb(4)、wx(5)

如果文章对你有帮助,欢迎点赞或打赏(金额不限)。你的打赏将全部用于支付网站服务器费用和提高网站文章质量,谢谢支持。

版权声明:

本文由 原创,商业转载请联系作者获得授权。
非商业转载请注明作者 雅乐网 ,并附带本文链接:
https://www.yalewoo.com/values_in_enum.html

上一篇:

下一篇:

我要评论

验证码*: 2 + 1 =