api 文档,到底用int描述状态,还是直接文字描述状态,数据库存储又用什么

237 阅读1分钟

其实后端开发api文档的话,或多多少会遇到这样的疑惑,比如一个字段的状态,可能有七八个左右,每次状态都需要去查询代码,看看mapping关系。

那么到底用int描述好,还是文字描述好呢?

关于使用int还是string的讨论

总结一下其实:

  • 1、有些人认为使用int,tinyint查询表速度快,其实不然对于varchar来说,mysql的innodb引擎对于排序都是各自编码有着各自编码的排序算法,不是想象的那么简单,也不是int就一定比varchar快。

  • 2、状态字段不可能建立索引,pass掉那种索引的说法

  • 3、有人说用数据库枚举来存储这些字段,本质上底层实现是tinyint,效率高,pass掉,因为不是所有数据库都是支持枚举的。不如加一个comment描述,而且这些更新dml语句成本不大。

  • 4、设想一下这种情况,接口返回这个状态,如果这个状态改动,依赖方是不是全部都得改,最简单就是后端改动,前端必须改动,还不要说后端服务模块多,依赖多的。

  • 5、其实最好的方式就是聚合层面做字段转换,这样好处是聚合服务只需要改一次,前端不用改。(其实有一种情况是,前端也不需要你渲染这个字段,所以这种pass掉,人家只要那俩状态,你非要搞三个,完了bug。。。。。)

大家有啥好的想法呢?