数据库int字段值的中文描述问题
描述
int
中文
段值
使用
数据库
问题
表示
如果
注释
编程进阶笔记
发布日期
2022-11-07
更新日期
2022-11-07
阅读次数 104
文章字数 742
一般来说,我们会使用 int 表示不同的类型、状态等
比如 state=1 表示通过,state=0 表示待审核,state=2 表示审核拒绝...
但是,如果值非常多,state=7 或 state=8 无限增加,又不写注释(多个地方使用到了并且重复)
又或者,即使有注释,但在代码中需要反复使用(不同页面),此时就有大量冗余代码,一旦修改起来要改动很多(还有一种情况是团队开发不写注释然后离职,导致难以知晓某个状态码的作用)。
考虑设计一个字段值描述表:
名 | 类型 | 长度 | 小数点 | 不是null | 键 | 注释 |
id | bigint | 1 | 1 | 自增id | ||
tb_name | varchar | 50 | 1 | 表名 | ||
column | varchar | 50 | 1 | 列名 | ||
value | int | 11 | 1 | 值 | ||
en | varchar | 50 | 英文描述 | |||
en_short | varchar | 50 | 英文短描述 | |||
en_long | varchar | 500 | 英文长描述 | |||
zh | varchar | 50 | 1 | 中文描述 | ||
zh_short | varchar | 50 | 中文短描述 | |||
zh_long | varchar | 500 | 中文长描述 |
这样,就可以把指定表,指定字段,指定xx值的什么含义描述清楚了。
一个系统设计这样一张表,int 字段的描述完全够用了。
至于怎么调用,可以考虑设计一个公共api(或者使用 join 连表的方式),这样可以直接调用,以图在必要时调用取得真实的值(或修改该值,而无需修改代码,大大提高了扩展性)。
后记【新】
可根据实际情况,再扩展几种写法,上面的不容易复用。它指定了表明和列明。如果改为:模块名+自定义描述名,则也是一种方案。
例如,app 模块 sex 描述,已知 1 男,2女。则整个系统中无论多少张表用到了性别描述,均使用其设定,非常容易维护,不容易出现 int 混乱的情况。在几乎不变时,可使用该设计,如果字段太多则且几乎无复用,第一种方案自定义属性名则远不如第一种实用【因为必须自定义描述名,取名很困难,如果冲突的话还可能造成错误】。
所以,更理想的情况是,分成动态字典【第一种】和静态字典【第二种】。
文章作者: 朱丰华
文章链接: https://smart.52dixiaowo.com/blog/post-23.html
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。
描述
int
中文
段值
使用
数据库
问题
表示
如果
注释
发表评论
相关推荐