-- 系统配置与审计通知中心数据库表脚本 -- 数据库: H2/PostgreSQL -- 字典类型表 CREATE TABLE IF NOT EXISTS sys_dict_type ( id BIGINT PRIMARY KEY AUTO_INCREMENT, dict_name VARCHAR(100) NOT NULL COMMENT '字典名称', dict_type VARCHAR(100) NOT NULL UNIQUE COMMENT '字典类型', status VARCHAR(1) DEFAULT '0' COMMENT '状态(0正常 1停用)', remark VARCHAR(500) COMMENT '备注', created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, deleted_at TIMESTAMP ); -- 字典数据表 CREATE TABLE IF NOT EXISTS sys_dict_data ( id BIGINT PRIMARY KEY AUTO_INCREMENT, dict_sort INT DEFAULT 0 COMMENT '字典排序', dict_label VARCHAR(100) NOT NULL COMMENT '字典标签', dict_value VARCHAR(100) NOT NULL COMMENT '字典键值', dict_type VARCHAR(100) NOT NULL COMMENT '字典类型', css_class VARCHAR(100) COMMENT '样式属性', list_class VARCHAR(100) COMMENT '表格回显样式', is_default VARCHAR(1) DEFAULT 'N' COMMENT '是否默认(Y是 N否)', status VARCHAR(1) DEFAULT '0' COMMENT '状态(0正常 1停用)', created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, deleted_at TIMESTAMP ); -- 系统配置表 CREATE TABLE IF NOT EXISTS sys_config ( id BIGINT PRIMARY KEY AUTO_INCREMENT, config_name VARCHAR(100) NOT NULL COMMENT '配置名称', config_key VARCHAR(100) NOT NULL UNIQUE COMMENT '配置键名', config_value VARCHAR(500) NOT NULL COMMENT '配置值', config_type VARCHAR(1) DEFAULT 'N' COMMENT '系统内置(Y是 N否)', created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, deleted_at TIMESTAMP ); -- 登录日志表 CREATE TABLE IF NOT EXISTS sys_login_log ( id BIGINT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(50) COMMENT '用户名', ip VARCHAR(50) COMMENT 'IP地址', location VARCHAR(255) COMMENT '登录位置', browser VARCHAR(50) COMMENT '浏览器类型', os VARCHAR(50) COMMENT '操作系统', status VARCHAR(1) COMMENT '登录状态(0成功 1失败)', message VARCHAR(255) COMMENT '提示消息', login_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- 异常日志表 CREATE TABLE IF NOT EXISTS sys_exception_log ( id BIGINT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(50) COMMENT '用户名', title VARCHAR(100) COMMENT '异常标题', exception_name VARCHAR(100) COMMENT '异常名称', method_name VARCHAR(100) COMMENT '方法名称', method_params TEXT COMMENT '方法参数', exception_msg TEXT COMMENT '异常信息', exception_stack TEXT COMMENT '堆栈信息', ip VARCHAR(50) COMMENT 'IP地址', create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- 系统公告表 CREATE TABLE IF NOT EXISTS sys_notice ( id BIGINT PRIMARY KEY AUTO_INCREMENT, notice_title VARCHAR(100) NOT NULL COMMENT '公告标题', notice_type VARCHAR(1) DEFAULT '1' COMMENT '公告类型(1通知 2公告)', notice_content TEXT COMMENT '公告内容', status VARCHAR(1) DEFAULT '0' COMMENT '公告状态(0正常 1关闭)', created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, deleted_at TIMESTAMP ); -- 文件管理表 CREATE TABLE IF NOT EXISTS sys_file ( id BIGINT PRIMARY KEY AUTO_INCREMENT, file_name VARCHAR(255) NOT NULL COMMENT '文件名', file_path VARCHAR(500) NOT NULL COMMENT '文件路径', file_size VARCHAR(50) COMMENT '文件大小', file_type VARCHAR(50) COMMENT '文件类型', storage_type VARCHAR(20) DEFAULT 'local' COMMENT '存储类型(local/oss/s3)', create_by VARCHAR(50) COMMENT '创建者', created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, deleted_at TIMESTAMP ); -- 用户消息表(消息推送用) CREATE TABLE IF NOT EXISTS sys_user_message ( id BIGINT PRIMARY KEY AUTO_INCREMENT, user_id BIGINT NOT NULL COMMENT '接收用户ID', title VARCHAR(100) COMMENT '消息标题', content TEXT COMMENT '消息内容', message_type VARCHAR(1) DEFAULT '1' COMMENT '消息类型(1系统 2通知)', is_read VARCHAR(1) DEFAULT '0' COMMENT '是否已读(0未读 1已读)', create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- 初始化默认系统配置数据 INSERT INTO sys_config (config_name, config_key, config_value, config_type) VALUES ('系统名称', 'sys.system.name', 'Novalon管理系统', 'Y'), ('系统版本', 'sys.system.version', '1.0.0', 'Y'), ('文件上传最大大小', 'sys.file.maxSize', '10485760', 'Y'), ('文件上传允许类型', 'sys.file.allowedTypes', 'jpg,jpeg,png,pdf,doc,docx,xls,xlsx', 'Y'), ('会话超时时间(分钟)', 'sys.session.timeout', '30', 'Y'), ('密码最小长度', 'sys.password.minLength', '6', 'Y'); -- 初始化默认字典类型 INSERT INTO sys_dict_type (dict_name, dict_type, status, remark) VALUES ('用户性别', 'sys_user_sex', '0', '用户性别列表'), ('菜单状态', 'sys_show_hide', '0', '菜单显示状态'), ('系统开关', 'sys_normal_disable', '0', '系统开关状态'), ('任务状态', 'sys_job_status', '0', '定时任务状态'), ('任务分组', 'sys_job_group', '0', '定时任务分组'), ('系统是否', 'sys_yes_no', '0', '系统是否列表'); -- 初始化默认字典数据 INSERT INTO sys_dict_data (dict_label, dict_value, dict_type, dict_sort, is_default, status) VALUES ('男', '0', 'sys_user_sex', 1, 'Y', '0'), ('女', '1', 'sys_user_sex', 2, 'N', '0'), ('未知', '2', 'sys_user_sex', 3, 'N', '0'), ('显示', '0', 'sys_show_hide', 1, 'Y', '0'), ('隐藏', '1', 'sys_show_hide', 2, 'N', '0'), ('正常', '0', 'sys_normal_disable', 1, 'Y', '0'), ('停用', '1', 'sys_normal_disable', 2, 'N', '0'), ('是', 'Y', 'sys_yes_no', 1, 'Y', '0'), ('否', 'N', 'sys_yes_no', 2, 'N', '0'); -- 创建索引 CREATE INDEX idx_sys_dict_type_dict_type ON sys_dict_type(dict_type); CREATE INDEX idx_sys_dict_data_dict_type ON sys_dict_data(dict_type); CREATE INDEX idx_sys_config_config_key ON sys_config(config_key); CREATE INDEX idx_sys_login_log_username ON sys_login_log(username); CREATE INDEX idx_sys_login_log_login_time ON sys_login_log(login_time); CREATE INDEX idx_sys_exception_log_create_time ON sys_exception_log(create_time); CREATE INDEX idx_sys_notice_status ON sys_notice(status); CREATE INDEX idx_sys_file_create_by ON sys_file(create_by); CREATE INDEX idx_sys_user_message_user_id ON sys_user_message(user_id); CREATE INDEX idx_sys_user_message_is_read ON sys_user_message(is_read);