Files
zkxw/backend/scripts/migration_20260429_user_scope_menu_code.sql
T
2026-05-12 16:35:07 +08:00

69 lines
3.4 KiB
SQL

-- 运营端权限改造:super_admin + 多区域 + 菜单 code 授权
-- 1) 角色迁移:admin -> super_admin
UPDATE sys_user
SET role = 'super_admin',
update_at = NOW()
WHERE is_del = 0
AND role = 'admin';
-- 2) 用户-区域权限表
CREATE TABLE IF NOT EXISTS sys_user_region_scope (
id VARCHAR(32) NOT NULL COMMENT '主键ID',
user_id VARCHAR(32) NOT NULL COMMENT '用户ID',
region_id VARCHAR(32) NOT NULL COMMENT '区域ID',
is_del TINYINT NOT NULL DEFAULT 0 COMMENT '是否删除',
create_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
create_by VARCHAR(32) DEFAULT NULL COMMENT '创建人ID',
create_name VARCHAR(100) DEFAULT NULL COMMENT '创建人姓名',
update_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
update_by VARCHAR(32) DEFAULT NULL COMMENT '修改人ID',
PRIMARY KEY (id),
UNIQUE KEY uk_user_region_scope (user_id, region_id, is_del),
KEY idx_user_region_scope_user (user_id, is_del),
KEY idx_user_region_scope_region (region_id, is_del)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户区域权限';
-- 3) 用户-区域权限历史表(无索引、无 is_del)
CREATE TABLE IF NOT EXISTS sys_user_region_scope_his (
id VARCHAR(32) NOT NULL COMMENT '主键ID',
user_id VARCHAR(32) NOT NULL COMMENT '用户ID',
region_id VARCHAR(32) NOT NULL COMMENT '区域ID',
create_at DATETIME DEFAULT NULL COMMENT '创建时间',
create_by VARCHAR(32) DEFAULT NULL COMMENT '创建人ID',
create_name VARCHAR(100) DEFAULT NULL COMMENT '创建人姓名',
update_at DATETIME DEFAULT NULL COMMENT '修改时间',
update_by VARCHAR(32) DEFAULT NULL COMMENT '修改人ID',
his_create_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '历史记录创建时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户区域权限历史';
-- 4) 用户-菜单 code 权限表
CREATE TABLE IF NOT EXISTS sys_user_menu_scope (
id VARCHAR(32) NOT NULL COMMENT '主键ID',
user_id VARCHAR(32) NOT NULL COMMENT '用户ID',
menu_code VARCHAR(100) NOT NULL COMMENT '菜单编码',
is_del TINYINT NOT NULL DEFAULT 0 COMMENT '是否删除',
create_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
create_by VARCHAR(32) DEFAULT NULL COMMENT '创建人ID',
create_name VARCHAR(100) DEFAULT NULL COMMENT '创建人姓名',
update_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
update_by VARCHAR(32) DEFAULT NULL COMMENT '修改人ID',
PRIMARY KEY (id),
UNIQUE KEY uk_user_menu_scope (user_id, menu_code, is_del),
KEY idx_user_menu_scope_user (user_id, is_del),
KEY idx_user_menu_scope_code (menu_code, is_del)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户菜单权限';
-- 5) 用户-菜单 code 权限历史表(无索引、无 is_del)
CREATE TABLE IF NOT EXISTS sys_user_menu_scope_his (
id VARCHAR(32) NOT NULL COMMENT '主键ID',
user_id VARCHAR(32) NOT NULL COMMENT '用户ID',
menu_code VARCHAR(100) NOT NULL COMMENT '菜单编码',
create_at DATETIME DEFAULT NULL COMMENT '创建时间',
create_by VARCHAR(32) DEFAULT NULL COMMENT '创建人ID',
create_name VARCHAR(100) DEFAULT NULL COMMENT '创建人姓名',
update_at DATETIME DEFAULT NULL COMMENT '修改时间',
update_by VARCHAR(32) DEFAULT NULL COMMENT '修改人ID',
his_create_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '历史记录创建时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户菜单权限历史';