浅谈通用的字典表结构设计

应该绝大多数系统都需要字典表吧,或许不叫这个名字,值集,枚举表等等。当然,java中有枚举类,能够将一部分不涉及到更新的枚举值配置其中,但大部分涉及到维护的数据,或者是通用的数据,如国家省市值,这个表数据状态值,配置到字典表里面都是非常好的选择。

在这里,我们就使用比较有名的项目ruoyi提供的字典表DDL来简单分享一下。ruoyi有两张字典相关表,一个字典类型表,一个字典数据表,将字典定义和数据分开,我也非常赞同这种设计。当然,也有些系统就用一张表代替,第一层存字典类型,即定义,后一层存数据。

字典类型表
在这里插入图片描述
字典数据表
在这里插入图片描述两张表通过字典类型关联,字典数据表中有顺序字段,可调整枚举对应显示顺序,有键和值字段,页面显示值,数据库中存键。因为使用了字符类型的dict_type做父子表的关联字段,在类型表中增加了唯一索引,字典数据表中的类型字段也应该增加普通索引,毕竟数据表中的字段会比类型表中的数据多很多。
这里其实也可以通过字典类型的主键来进行父子表的关联。

另外,个人觉得字典数据表支持层级也是一个可以考虑的点。比如一级大类下有多个二级小类,增加一个parent_id可以在数据表中递归查询所有的层级数据。这样做的话,字典数据表中的字典类型字段就可以去掉,最顶层数据的parent_id存类型的id,并且类型数据的主键用雪花算法生成。

Supongo que te gusta

Origin blog.csdn.net/qq_41885819/article/details/120370583
Recomendado
Clasificación