前言:
這一節將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='操作日志記錄';