简介
字典表的用处:
某些变量在多个地方使用,而且一般是固定的,但是随着系统升级和后期变化,可能需要改变,如果这些变量写死在代码里面将会变得难以维护,所以要将其从代码中抽离出来。
为了减少数据库的访问,字典表的查询前通常是先经过缓存查询
表结构
字典类型表
CREATE TABLE `sys_dict_type` (
`dict_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '字典主键',
`dict_name` varchar(100) DEFAULT '' COMMENT '字典名称',
`dict_type` varchar(100) DEFAULT '' COMMENT '字典类型',
`status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)',
`creator` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`updator` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`dict_id`),
UNIQUE KEY `dict_type` (`dict_type`)
) ENGINE=InnoDB AUTO_INCREMENT=103 DEFAULT CHARSET=utf8 COMMENT='字典类型表';
字典值表
查看代码
CREATE TABLE `sys_dict_data` (
`dict_code` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '字典编码',
`dict_sort` int(4) DEFAULT '0' COMMENT '字典排序',
`dict_label` varchar(100) DEFAULT '' COMMENT '字典标签',
`dict_value` varchar(100) DEFAULT '' COMMENT '字典键值',
`dict_type` varchar(100) DEFAULT '' COMMENT '字典类型',
`is_default` char(1) DEFAULT 'N' COMMENT '是否默认(Y是 N否)',
`status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)',
`creator` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`updator` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`dict_code`)
) ENGINE=InnoDB AUTO_INCREMENT=105 DEFAULT CHARSET=utf8 COMMENT='字典数据表';
也可以直接都放在同一表中
字典类型可以为第一级别,parent_id为0
查看代码
CREATE TABLE `sysdic` (
`id` varchar(32) NOT NULL COMMENT '主键ID',
`name` varchar(100) DEFAULT NULL COMMENT '字典名称',
`title` varchar(100) DEFAULT NULL COMMENT '标题',
`code` varchar(100) DEFAULT NULL COMMENT '编码',
`type` varchar(32) DEFAULT NULL COMMENT '类型',
`parent_id` varchar(32) DEFAULT NULL COMMENT '父级ID',
`level` int(11) DEFAULT NULL COMMENT '级别',
`desc` varchar(255) DEFAULT NULL COMMENT '描述',
`mark` varchar(32) DEFAULT NULL COMMENT '备注',
`has_child` tinyint(4) DEFAULT NULL COMMENT '是否有下级',
`sort` int(11) DEFAULT NULL COMMENT '排序',
`dic_id` varchar(32) DEFAULT NULL COMMENT '目录ID',
`default_value` tinyint(4) DEFAULT NULL COMMENT '默认值',
`creator` varchar(32) DEFAULT NULL COMMENT '创建人',
`updator` varchar(32) DEFAULT NULL COMMENT '修改人',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
primary KEY (`id`) USING BTREE,
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='字典表';