前言:
这一节将ruoyi框架中数据库中的表结构过一遍,查看都有哪些表及其表结构及关联关系,为后续代码学习做准备。
一 代码生成表
记录代码生成的业务表及相关字段
1 代码生成业务表
CREATE TABLE `gen_table` (`table_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号',`table_name` varchar(200) DEFAULT '' COMMENT '表名称',`table_comment` varchar(500) DEFAULT '' COMMENT '表描述',`sub_table_name` varchar(64) DEFAULT NULL COMMENT '关联子表的表名',`sub_table_fk_name` varchar(64) DEFAULT NULL COMMENT '子表关联的外键名',`class_name` varchar(100) DEFAULT '' COMMENT '实体类名称',`tpl_category` varchar(200) DEFAULT 'crud' COMMENT '使用的模板(crud单表操作 tree树表操作)',`tpl_web_type` varchar(30) DEFAULT '' COMMENT '前端模板类型(element-ui模版 element-plus模版)',`package_name` varchar(100) DEFAULT NULL COMMENT '生成包路径',`module_name` varchar(30) DEFAULT NULL COMMENT '生成模块名',`business_name` varchar(30) DEFAULT NULL COMMENT '生成业务名',`function_name` varchar(50) DEFAULT NULL COMMENT '生成功能名',`function_author` varchar(50) DEFAULT NULL COMMENT '生成功能作者',`gen_type` char(1) DEFAULT '0' COMMENT '生成代码方式(0zip压缩包 1自定义路径)',`gen_path` varchar(200) DEFAULT '/' COMMENT '生成路径(不填默认项目路径)',`options` varchar(1000) DEFAULT NULL COMMENT '其它生成选项',`create_by` varchar(64) DEFAULT '' COMMENT '创建者',`create_time` datetime DEFAULT NULL COMMENT '创建时间',`update_by` varchar(64) DEFAULT '' COMMENT '更新者',`update_time` datetime DEFAULT NULL COMMENT '更新时间',`remark` varchar(500) DEFAULT NULL COMMENT '备注',PRIMARY KEY (`table_id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='代码生成业务表';
2 代码生成业务表字段
CREATE TABLE `gen_table_column` (`column_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号',`table_id` bigint(20) DEFAULT NULL COMMENT '归属表编号',`column_name` varchar(200) DEFAULT NULL COMMENT '列名称',`column_comment` varchar(500) DEFAULT NULL COMMENT '列描述',`column_type` varchar(100) DEFAULT NULL COMMENT '列类型',`java_type` varchar(500) DEFAULT NULL COMMENT 'JAVA类型',`java_field` varchar(200) DEFAULT NULL COMMENT 'JAVA字段名',`is_pk` char(1) DEFAULT NULL COMMENT '是否主键(1是)',`is_increment` char(1) DEFAULT NULL COMMENT '是否自增(1是)',`is_required` char(1) DEFAULT NULL COMMENT '是否必填(1是)',`is_insert` char(1) DEFAULT NULL COMMENT '是否为插入字段(1是)',`is_edit` char(1) DEFAULT NULL COMMENT '是否编辑字段(1是)',`is_list` char(1) DEFAULT NULL COMMENT '是否列表字段(1是)',`is_query` char(1) DEFAULT NULL COMMENT '是否查询字段(1是)',`query_type` varchar(200) DEFAULT 'EQ' COMMENT '查询方式(等于、不等于、大于、小于、范围)',`html_type` varchar(200) DEFAULT NULL COMMENT '显示类型(文本框、文本域、下拉框、复选框、单选框、日期控件)',`dict_type` varchar(200) DEFAULT '' COMMENT '字典类型',`sort` int(11) DEFAULT NULL COMMENT '排序',`create_by` varchar(64) DEFAULT '' COMMENT '创建者',`create_time` datetime DEFAULT NULL COMMENT '创建时间',`update_by` varchar(64) DEFAULT '' COMMENT '更新者',`update_time` datetime DEFAULT NULL COMMENT '更新时间',PRIMARY KEY (`column_id`)
) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8 COMMENT='代码生成业务表字段';
二 系统常用参数表
系统用到的参数:密码,皮肤,自定义默认值等
1 参数配置表
CREATE TABLE `sys_config` (`config_id` int(5) NOT NULL AUTO_INCREMENT COMMENT '参数主键',`config_name` varchar(100) DEFAULT '' COMMENT '参数名称',`config_key` varchar(100) DEFAULT '' COMMENT '参数键名',`config_value` varchar(500) DEFAULT '' COMMENT '参数键值',`config_type` char(1) DEFAULT 'N' COMMENT '系统内置(Y是 N否)',`create_by` varchar(64) DEFAULT '' COMMENT '创建者',`create_time` datetime DEFAULT NULL COMMENT '创建时间',`update_by` varchar(64) DEFAULT '' COMMENT '更新者',`update_time` datetime DEFAULT NULL COMMENT '更新时间',`remark` varchar(500) DEFAULT NULL COMMENT '备注',PRIMARY KEY (`config_id`)
) ENGINE=InnoDB AUTO_INCREMENT=100 DEFAULT CHARSET=utf8 COMMENT='参数配置表';
三 部门表
部门id,父部门id:顶头上级部门id,祖级列表:该部门所有上级部门id列表。
如:研发部门id为103,父部门id为101即深圳总公司,祖级列表为0,100,101说明研发部门是若依科技下的深圳总公司下的研发部门。
应用:当只传部门id,却想要该部门下的所有部门,就可以通过祖级列表来查询,把祖级列表中包含该id的所有部门查询出来即可。
1 部门表
CREATE TABLE `sys_dept` (`dept_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '部门id',`parent_id` bigint(20) DEFAULT '0' COMMENT '父部门id',`ancestors` varchar(50) DEFAULT '' COMMENT '祖级列表',`dept_name` varchar(30) DEFAULT '' COMMENT '部门名称',`order_num` int(4) DEFAULT '0' COMMENT '显示顺序',`leader` varchar(20) DEFAULT NULL COMMENT '负责人',`phone` varchar(11) DEFAULT NULL COMMENT '联系电话',`email` varchar(50) DEFAULT NULL COMMENT '邮箱',`status` char(1) DEFAULT '0' COMMENT '部门状态(0正常 1停用)',`del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',`create_by` varchar(64) DEFAULT '' COMMENT '创建者',`create_time` datetime DEFAULT NULL COMMENT '创建时间',`update_by` varchar(64) DEFAULT '' COMMENT '更新者',`update_time` datetime DEFAULT NULL COMMENT '更新时间',PRIMARY KEY (`dept_id`)
) ENGINE=InnoDB AUTO_INCREMENT=200 DEFAULT CHARSET=utf8 COMMENT='部门表';
四 字典表
字典类型表中字典类型dict_type与字典数据表中字典类型dict_type对应
1 字典类型表
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停用)',`create_by` varchar(64) DEFAULT '' COMMENT '创建者',`create_time` datetime DEFAULT NULL COMMENT '创建时间',`update_by` 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=100 DEFAULT CHARSET=utf8 COMMENT='字典类型表';
2 字典数据表
dict_label dict_value键值对,is_default控制默认值,如默认性别等
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 '字典类型',`css_class` varchar(100) DEFAULT NULL COMMENT '样式属性(其他样式扩展)',`list_class` varchar(100) DEFAULT NULL COMMENT '表格回显样式',`is_default` char(1) DEFAULT 'N' COMMENT '是否默认(Y是 N否)',`status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)',`create_by` varchar(64) DEFAULT '' COMMENT '创建者',`create_time` datetime DEFAULT NULL COMMENT '创建时间',`update_by` varchar(64) DEFAULT '' COMMENT '更新者',`update_time` datetime DEFAULT NULL COMMENT '更新时间',`remark` varchar(500) DEFAULT NULL COMMENT '备注',PRIMARY KEY (`dict_code`)
) ENGINE=InnoDB AUTO_INCREMENT=100 DEFAULT CHARSET=utf8 COMMENT='字典数据表';
五 定时任务表
存储定时任务信息如任务名称,组,cron表达式,计划执行错误策略以及任务执行记录等
invoke_target 指向任务的方法
1 定时任务调度表
CREATE TABLE `sys_job` (`job_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '任务ID',`job_name` varchar(64) NOT NULL DEFAULT '' COMMENT '任务名称',`job_group` varchar(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '任务组名',`invoke_target` varchar(500) NOT NULL COMMENT '调用目标字符串',`cron_expression` varchar(255) DEFAULT '' COMMENT 'cron执行表达式',`misfire_policy` varchar(20) DEFAULT '3' COMMENT '计划执行错误策略(1立即执行 2执行一次 3放弃执行)',`concurrent` char(1) DEFAULT '1' COMMENT '是否并发执行(0允许 1禁止)',`status` char(1) DEFAULT '0' COMMENT '状态(0正常 1暂停)',`create_by` varchar(64) DEFAULT '' COMMENT '创建者',`create_time` datetime DEFAULT NULL COMMENT '创建时间',`update_by` varchar(64) DEFAULT '' COMMENT '更新者',`update_time` datetime DEFAULT NULL COMMENT '更新时间',`remark` varchar(500) DEFAULT '' COMMENT '备注信息',PRIMARY KEY (`job_id`,`job_name`,`job_group`)
) ENGINE=InnoDB AUTO_INCREMENT=100 DEFAULT CHARSET=utf8 COMMENT='定时任务调度表';
2 定时任务调度日志表
CREATE TABLE `sys_job_log` (`job_log_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '任务日志ID',`job_name` varchar(64) NOT NULL COMMENT '任务名称',`job_group` varchar(64) NOT NULL COMMENT '任务组名',`invoke_target` varchar(500) NOT NULL COMMENT '调用目标字符串',`job_message` varchar(500) DEFAULT NULL COMMENT '日志信息',`status` char(1) DEFAULT '0' COMMENT '执行状态(0正常 1失败)',`exception_info` varchar(2000) DEFAULT '' COMMENT '异常信息',`create_time` datetime DEFAULT NULL COMMENT '创建时间',PRIMARY KEY (`job_log_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='定时任务调度日志表';
六 通知公告表
通知公告信息,暂无功能拓展,可自行接入公告推送平台,如:企业微信等
1 通知公告表
CREATE TABLE `sys_notice` (`notice_id` int(4) NOT NULL AUTO_INCREMENT COMMENT '公告ID',`notice_title` varchar(50) NOT NULL COMMENT '公告标题',`notice_type` char(1) NOT NULL COMMENT '公告类型(1通知 2公告)',`notice_content` longblob COMMENT '公告内容',`status` char(1) DEFAULT '0' COMMENT '公告状态(0正常 1关闭)',`create_by` varchar(64) DEFAULT '' COMMENT '创建者',`create_time` datetime DEFAULT NULL COMMENT '创建时间',`update_by` varchar(64) DEFAULT '' COMMENT '更新者',`update_time` datetime DEFAULT NULL COMMENT '更新时间',`remark` varchar(255) DEFAULT NULL COMMENT '备注',PRIMARY KEY (`notice_id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8 COMMENT='通知公告表';
七 权限表(重要)
1 关联关系
2 岗位表
CREATE TABLE `sys_post` (`post_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '岗位ID',`post_code` varchar(64) NOT NULL COMMENT '岗位编码',`post_name` varchar(50) NOT NULL COMMENT '岗位名称',`post_sort` int(4) NOT NULL COMMENT '显示顺序',`status` char(1) NOT NULL COMMENT '状态(0正常 1停用)',`create_by` varchar(64) DEFAULT '' COMMENT '创建者',`create_time` datetime DEFAULT NULL COMMENT '创建时间',`update_by` varchar(64) DEFAULT '' COMMENT '更新者',`update_time` datetime DEFAULT NULL COMMENT '更新时间',`remark` varchar(500) DEFAULT NULL COMMENT '备注',PRIMARY KEY (`post_id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='岗位信息表';
3 用户与岗位关联表
CREATE TABLE `sys_user_post` (`user_id` bigint(20) NOT NULL COMMENT '用户ID',`post_id` bigint(20) NOT NULL COMMENT '岗位ID',PRIMARY KEY (`user_id`,`post_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户与岗位关联表';
4 用户表
user_type类型 默认为00,暂无拓展功能,如果系统用户有类型区分可以用该字段进行判断
CREATE TABLE `sys_user` (`user_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '用户ID',`dept_id` bigint(20) DEFAULT NULL COMMENT '部门ID',`user_name` varchar(30) NOT NULL COMMENT '用户账号',`nick_name` varchar(30) NOT NULL COMMENT '用户昵称',`user_type` varchar(2) DEFAULT '00' COMMENT '用户类型(00系统用户)',`email` varchar(50) DEFAULT '' COMMENT '用户邮箱',`phonenumber` varchar(11) DEFAULT '' COMMENT '手机号码',`sex` char(1) DEFAULT '0' COMMENT '用户性别(0男 1女 2未知)',`avatar` varchar(100) DEFAULT '' COMMENT '头像地址',`password` varchar(100) DEFAULT '' COMMENT '密码',`status` char(1) DEFAULT '0' COMMENT '账号状态(0正常 1停用)',`del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',`login_ip` varchar(128) DEFAULT '' COMMENT '最后登录IP',`login_date` datetime DEFAULT NULL COMMENT '最后登录时间',`pwd_update_date` datetime DEFAULT NULL COMMENT '密码最后更新时间',`create_by` varchar(64) DEFAULT '' COMMENT '创建者',`create_time` datetime DEFAULT NULL COMMENT '创建时间',`update_by` varchar(64) DEFAULT '' COMMENT '更新者',`update_time` datetime DEFAULT NULL COMMENT '更新时间',`remark` varchar(500) DEFAULT NULL COMMENT '备注',PRIMARY KEY (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=101 DEFAULT CHARSET=utf8 COMMENT='用户信息表';
5 用户和角色关联表
CREATE TABLE `sys_user_role` (`user_id` bigint(20) NOT NULL COMMENT '用户ID',`role_id` bigint(20) NOT NULL COMMENT '角色ID',PRIMARY KEY (`user_id`,`role_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户和角色关联表';
6 角色信息表
role_key字段用于控制角色权限,不可重复,不可随便取值
CREATE TABLE `sys_role` (`role_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '角色ID',`role_name` varchar(30) NOT NULL COMMENT '角色名称',`role_key` varchar(100) NOT NULL COMMENT '角色权限字符串',`role_sort` int(4) NOT NULL COMMENT '显示顺序',`data_scope` char(1) DEFAULT '1' COMMENT '数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)',`menu_check_strictly` tinyint(1) DEFAULT '1' COMMENT '菜单树选择项是否关联显示',`dept_check_strictly` tinyint(1) DEFAULT '1' COMMENT '部门树选择项是否关联显示',`status` char(1) NOT NULL COMMENT '角色状态(0正常 1停用)',`del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',`create_by` varchar(64) DEFAULT '' COMMENT '创建者',`create_time` datetime DEFAULT NULL COMMENT '创建时间',`update_by` varchar(64) DEFAULT '' COMMENT '更新者',`update_time` datetime DEFAULT NULL COMMENT '更新时间',`remark` varchar(500) DEFAULT NULL COMMENT '备注',PRIMARY KEY (`role_id`)
) ENGINE=InnoDB AUTO_INCREMENT=100 DEFAULT CHARSET=utf8 COMMENT='角色信息表';
7 角色和菜单关联表
CREATE TABLE `sys_role_menu` (`role_id` bigint(20) NOT NULL COMMENT '角色ID',`menu_id` bigint(20) NOT NULL COMMENT '菜单ID',PRIMARY KEY (`role_id`,`menu_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='角色和菜单关联表';
8 菜单表
path 路由请求地址
component 对应前端访问路径
is_frame 外部打开链接
perms 权限标识 通过该字段进行判断菜单是否展示或可用
CREATE TABLE `sys_menu` (`menu_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '菜单ID',`menu_name` varchar(50) NOT NULL COMMENT '菜单名称',`parent_id` bigint(20) DEFAULT '0' COMMENT '父菜单ID',`order_num` int(4) DEFAULT '0' COMMENT '显示顺序',`path` varchar(200) DEFAULT '' COMMENT '路由地址',`component` varchar(255) DEFAULT NULL COMMENT '组件路径',`query` varchar(255) DEFAULT NULL COMMENT '路由参数',`route_name` varchar(50) DEFAULT '' COMMENT '路由名称',`is_frame` int(1) DEFAULT '1' COMMENT '是否为外链(0是 1否)',`is_cache` int(1) DEFAULT '0' COMMENT '是否缓存(0缓存 1不缓存)',`menu_type` char(1) DEFAULT '' COMMENT '菜单类型(M目录 C菜单 F按钮)',`visible` char(1) DEFAULT '0' COMMENT '菜单状态(0显示 1隐藏)',`status` char(1) DEFAULT '0' COMMENT '菜单状态(0正常 1停用)',`perms` varchar(100) DEFAULT NULL COMMENT '权限标识',`icon` varchar(100) DEFAULT '#' COMMENT '菜单图标',`create_by` varchar(64) DEFAULT '' COMMENT '创建者',`create_time` datetime DEFAULT NULL COMMENT '创建时间',`update_by` varchar(64) DEFAULT '' COMMENT '更新者',`update_time` datetime DEFAULT NULL COMMENT '更新时间',`remark` varchar(500) DEFAULT '' COMMENT '备注',PRIMARY KEY (`menu_id`)
) ENGINE=InnoDB AUTO_INCREMENT=2001 DEFAULT CHARSET=utf8 COMMENT='菜单权限表';
9 角色部门关联表
用于设置角色权限为:当前部门权限或某几个部门权限时
CREATE TABLE `sys_role_dept` (`role_id` bigint(20) NOT NULL COMMENT '角色ID',`dept_id` bigint(20) NOT NULL COMMENT '部门ID',PRIMARY KEY (`role_id`,`dept_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='角色和部门关联表';
八 系统记录表
记录登录,操作信息
1 系统访问记录
CREATE TABLE `sys_logininfor` (`info_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '访问ID',`user_name` varchar(50) DEFAULT '' COMMENT '用户账号',`ipaddr` varchar(128) DEFAULT '' COMMENT '登录IP地址',`login_location` varchar(255) DEFAULT '' COMMENT '登录地点',`browser` varchar(50) DEFAULT '' COMMENT '浏览器类型',`os` varchar(50) DEFAULT '' COMMENT '操作系统',`status` char(1) DEFAULT '0' COMMENT '登录状态(0成功 1失败)',`msg` varchar(255) DEFAULT '' COMMENT '提示消息',`login_time` datetime DEFAULT NULL COMMENT '访问时间',PRIMARY KEY (`info_id`),KEY `idx_sys_logininfor_s` (`status`),KEY `idx_sys_logininfor_lt` (`login_time`)
) ENGINE=InnoDB AUTO_INCREMENT=114 DEFAULT CHARSET=utf8 COMMENT='系统访问记录';
2 操作日志记录
CREATE TABLE `sys_oper_log` (`oper_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '日志主键',`title` varchar(50) DEFAULT '' COMMENT '模块标题',`business_type` int(2) DEFAULT '0' COMMENT '业务类型(0其它 1新增 2修改 3删除)',`method` varchar(200) DEFAULT '' COMMENT '方法名称',`request_method` varchar(10) DEFAULT '' COMMENT '请求方式',`operator_type` int(1) DEFAULT '0' COMMENT '操作类别(0其它 1后台用户 2手机端用户)',`oper_name` varchar(50) DEFAULT '' COMMENT '操作人员',`dept_name` varchar(50) DEFAULT '' COMMENT '部门名称',`oper_url` varchar(255) DEFAULT '' COMMENT '请求URL',`oper_ip` varchar(128) DEFAULT '' COMMENT '主机地址',`oper_location` varchar(255) DEFAULT '' COMMENT '操作地点',`oper_param` varchar(2000) DEFAULT '' COMMENT '请求参数',`json_result` varchar(2000) DEFAULT '' COMMENT '返回参数',`status` int(1) DEFAULT '0' COMMENT '操作状态(0正常 1异常)',`error_msg` varchar(2000) DEFAULT '' COMMENT '错误消息',`oper_time` datetime DEFAULT NULL COMMENT '操作时间',`cost_time` bigint(20) DEFAULT '0' COMMENT '消耗时间',PRIMARY KEY (`oper_id`),KEY `idx_sys_oper_log_bt` (`business_type`),KEY `idx_sys_oper_log_s` (`status`),KEY `idx_sys_oper_log_ot` (`oper_time`)
) ENGINE=InnoDB AUTO_INCREMENT=123 DEFAULT CHARSET=utf8 COMMENT='操作日志记录';