-- H2数据库Schema for Integration Testing -- Create用户表 CREATE TABLE IF NOT EXISTS sys_user ( id BIGINT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL UNIQUE, password VARCHAR(255) NOT NULL, email VARCHAR(100), phone VARCHAR(20), nickname VARCHAR(100), role_id BIGINT, status INTEGER DEFAULT 1, create_by VARCHAR(50), update_by VARCHAR(50), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, deleted_at TIMESTAMP ); -- Create角色表 CREATE TABLE IF NOT EXISTS sys_role ( id BIGINT AUTO_INCREMENT PRIMARY KEY, role_name VARCHAR(100) NOT NULL, role_key VARCHAR(100) NOT NULL UNIQUE, role_sort INTEGER DEFAULT 0, status INTEGER DEFAULT 1, create_by VARCHAR(50), update_by VARCHAR(50), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, deleted_at TIMESTAMP ); -- Create用户角色关联表 CREATE TABLE IF NOT EXISTS user_role ( id BIGINT AUTO_INCREMENT PRIMARY KEY, user_id BIGINT NOT NULL, role_id BIGINT NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, created_by VARCHAR(50), CONSTRAINT fk_user_role_user FOREIGN KEY (user_id) REFERENCES sys_user(id) ON DELETE CASCADE, CONSTRAINT fk_user_role_role FOREIGN KEY (role_id) REFERENCES sys_role(id) ON DELETE CASCADE, CONSTRAINT uk_user_role UNIQUE (user_id, role_id) ); -- Create菜单表 CREATE TABLE IF NOT EXISTS sys_menu ( id BIGINT AUTO_INCREMENT PRIMARY KEY, menu_name VARCHAR(50) NOT NULL, parent_id BIGINT DEFAULT 0, order_num INTEGER DEFAULT 0, path VARCHAR(200), component VARCHAR(200), menu_type VARCHAR(1) DEFAULT 'C', visible VARCHAR(1) DEFAULT '1', status VARCHAR(1) DEFAULT '1', perms VARCHAR(100), icon VARCHAR(100), create_by VARCHAR(50), update_by VARCHAR(50), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, deleted_at TIMESTAMP ); -- Create权限表 CREATE TABLE IF NOT EXISTS sys_permission ( id BIGINT AUTO_INCREMENT PRIMARY KEY, permission_name VARCHAR(100) NOT NULL, permission_code VARCHAR(100) NOT NULL UNIQUE, resource VARCHAR(200), action VARCHAR(20), description VARCHAR(500), status INTEGER DEFAULT 1, create_by VARCHAR(50), update_by VARCHAR(50), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, deleted_at TIMESTAMP ); -- Create角色权限关联表 CREATE TABLE IF NOT EXISTS sys_role_permission ( id BIGINT AUTO_INCREMENT PRIMARY KEY, role_id BIGINT NOT NULL, permission_id BIGINT NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, created_by VARCHAR(50), updated_by VARCHAR(50), CONSTRAINT fk_role_permission_role FOREIGN KEY (role_id) REFERENCES sys_role(id) ON DELETE CASCADE, CONSTRAINT fk_role_permission_permission FOREIGN KEY (permission_id) REFERENCES sys_permission(id) ON DELETE CASCADE, CONSTRAINT uk_role_permission UNIQUE (role_id, permission_id) ); -- Create字典类型表 CREATE TABLE IF NOT EXISTS sys_dict_type ( id BIGINT AUTO_INCREMENT PRIMARY KEY, dict_name VARCHAR(100) NOT NULL, dict_type VARCHAR(100) NOT NULL UNIQUE, status VARCHAR(1) DEFAULT '0', remark VARCHAR(500), create_by VARCHAR(50), update_by VARCHAR(50), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, deleted_at TIMESTAMP ); -- Create字典数据表 CREATE TABLE IF NOT EXISTS sys_dict_data ( id BIGINT AUTO_INCREMENT PRIMARY KEY, dict_sort INTEGER DEFAULT 0, dict_label VARCHAR(100) NOT NULL, dict_value VARCHAR(100) NOT NULL, dict_type VARCHAR(100) NOT NULL, css_class VARCHAR(100), list_class VARCHAR(100), is_default VARCHAR(1) DEFAULT 'N', status VARCHAR(1) DEFAULT '0', create_by VARCHAR(50), update_by VARCHAR(50), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, deleted_at TIMESTAMP ); -- Create字典表(通用字典) CREATE TABLE IF NOT EXISTS sys_dictionary ( id BIGINT AUTO_INCREMENT PRIMARY KEY, type VARCHAR(100) NOT NULL, code VARCHAR(100) NOT NULL, name VARCHAR(100) NOT NULL, dict_value VARCHAR(500), remark VARCHAR(500), sort INTEGER DEFAULT 0, create_by VARCHAR(50), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, deleted_at TIMESTAMP ); -- Create系统配置表 CREATE TABLE IF NOT EXISTS sys_config ( id BIGINT AUTO_INCREMENT PRIMARY KEY, config_name VARCHAR(100) NOT NULL, config_key VARCHAR(100) NOT NULL UNIQUE, config_value VARCHAR(500) NOT NULL, config_type VARCHAR(1) DEFAULT 'N', create_by VARCHAR(50), update_by VARCHAR(50), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, deleted_at TIMESTAMP ); -- Create登录日志表 CREATE TABLE IF NOT EXISTS sys_login_log ( id BIGINT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50), ip VARCHAR(50), location VARCHAR(255), browser VARCHAR(50), os VARCHAR(50), status VARCHAR(1), message VARCHAR(255), login_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- Create异常日志表 CREATE TABLE IF NOT EXISTS sys_exception_log ( id BIGINT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50), title VARCHAR(100), exception_name VARCHAR(100), method_name VARCHAR(255), method_params TEXT, exception_msg TEXT, exception_stack TEXT, ip VARCHAR(50), create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- Create操作日志表 CREATE TABLE IF NOT EXISTS operation_log ( id BIGINT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50), operation VARCHAR(100), method VARCHAR(200), params TEXT, result TEXT, ip VARCHAR(50), duration BIGINT, status VARCHAR(1) DEFAULT '0', error_msg TEXT, create_by VARCHAR(50), update_by VARCHAR(50), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, deleted_at TIMESTAMP ); -- Create系统公告表 CREATE TABLE IF NOT EXISTS sys_notice ( id BIGINT AUTO_INCREMENT PRIMARY KEY, notice_title VARCHAR(50) NOT NULL, notice_type VARCHAR(1) NOT NULL, notice_content TEXT, status VARCHAR(1) DEFAULT '0', create_by VARCHAR(50), update_by VARCHAR(50), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, deleted_at TIMESTAMP ); -- Create用户消息表 CREATE TABLE IF NOT EXISTS sys_user_message ( id BIGINT AUTO_INCREMENT PRIMARY KEY, user_id BIGINT NOT NULL, notice_id BIGINT, message_title VARCHAR(255), message_content TEXT, is_read VARCHAR(1) DEFAULT '0', read_time TIMESTAMP, create_by VARCHAR(50), update_by VARCHAR(50), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, deleted_at TIMESTAMP ); -- Create文件管理表 CREATE TABLE IF NOT EXISTS sys_file ( id BIGINT AUTO_INCREMENT PRIMARY KEY, file_name VARCHAR(255) NOT NULL, file_path VARCHAR(500) NOT NULL, file_size BIGINT, file_type VARCHAR(100), file_extension VARCHAR(10), storage_type VARCHAR(50), create_by VARCHAR(50), update_by VARCHAR(50), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, deleted_at TIMESTAMP ); -- Create索引 CREATE INDEX IF NOT EXISTS idx_user_role_user_id ON user_role(user_id); CREATE INDEX IF NOT EXISTS idx_user_role_role_id ON user_role(role_id); CREATE INDEX IF NOT EXISTS idx_sys_menu_parent_id ON sys_menu(parent_id); CREATE INDEX IF NOT EXISTS idx_sys_dict_type ON sys_dict_data(dict_type); CREATE INDEX IF NOT EXISTS idx_sys_login_log_username ON sys_login_log(username); CREATE INDEX IF NOT EXISTS idx_operation_log_username ON operation_log(username);