-- ===================================================== -- 菜单表和角色菜单关联表 -- ===================================================== -- 1. 菜单表 DROP TABLE IF EXISTS t_menu; CREATE TABLE t_menu ( id BIGINT PRIMARY KEY COMMENT '菜单ID(雪花算法)', parent_id BIGINT DEFAULT 0 COMMENT '父菜单ID,0表示顶级菜单', menu_type INT DEFAULT 0 COMMENT '菜单类型: 0=菜单 1=iframe 2=外链 3=按钮', title VARCHAR(100) NOT NULL COMMENT '菜单名称', name VARCHAR(100) DEFAULT '' COMMENT '路由名称', path VARCHAR(200) DEFAULT '' COMMENT '路由路径', component VARCHAR(200) DEFAULT '' COMMENT '组件路径', `rank` INT DEFAULT 99 COMMENT '菜单排序', redirect VARCHAR(200) DEFAULT '' COMMENT '路由重定向', icon VARCHAR(100) DEFAULT '' COMMENT '菜单图标', extra_icon VARCHAR(100) DEFAULT '' COMMENT '右侧图标', enter_transition VARCHAR(50) DEFAULT '' COMMENT '进场动画', leave_transition VARCHAR(50) DEFAULT '' COMMENT '离场动画', active_path VARCHAR(200) DEFAULT '' COMMENT '菜单激活路径', auths VARCHAR(200) DEFAULT '' COMMENT '权限标识(按钮级别)', frame_src VARCHAR(500) DEFAULT '' COMMENT 'iframe链接地址', frame_loading TINYINT DEFAULT 1 COMMENT 'iframe是否开启加载动画', keep_alive TINYINT DEFAULT 0 COMMENT '是否缓存页面', hidden_tag TINYINT DEFAULT 0 COMMENT '是否禁止添加到标签页', fixed_tag TINYINT DEFAULT 0 COMMENT '是否固定显示在标签页', show_link TINYINT DEFAULT 1 COMMENT '是否显示该菜单', show_parent TINYINT DEFAULT 0 COMMENT '是否显示父级菜单', create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', deleted TINYINT DEFAULT 0 COMMENT '逻辑删除: 0=正常 1=已删除', KEY idx_parent_id (parent_id), KEY idx_menu_type (menu_type), KEY idx_rank (`rank`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='菜单表'; -- 2. 角色-菜单关联表 DROP TABLE IF EXISTS t_role_menu; CREATE TABLE t_role_menu ( id BIGINT PRIMARY KEY COMMENT '主键ID(雪花算法)', role_id BIGINT NOT NULL COMMENT '角色ID', menu_id BIGINT NOT NULL COMMENT '菜单ID', create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', UNIQUE KEY uk_role_menu (role_id, menu_id), KEY idx_role_id (role_id), KEY idx_menu_id (menu_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色菜单关联表';