86 lines
3.9 KiB
Plaintext
86 lines
3.9 KiB
Plaintext
CREATE DATABASE IF NOT EXISTS kbase DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||
USE kbase;
|
||
|
||
|
||
-- 1. 用户基础表
|
||
CREATE TABLE IF NOT EXISTS user (
|
||
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '用户ID,主键',
|
||
username VARCHAR(64) NOT NULL UNIQUE COMMENT '登录用户名,唯一',
|
||
password VARCHAR(128) NOT NULL COMMENT '用户密码(建议加密存储)',
|
||
add_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '添加时间',
|
||
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
|
||
) COMMENT='用户基础表';
|
||
|
||
|
||
-- 2. 角色表
|
||
CREATE TABLE IF NOT EXISTS role (
|
||
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '角色ID',
|
||
role_code VARCHAR(64) NOT NULL UNIQUE COMMENT '角色编码(如 admin/user/guest)',
|
||
role_name VARCHAR(64) NOT NULL COMMENT '角色名称',
|
||
add_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '添加时间',
|
||
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
|
||
) COMMENT='系统角色表';
|
||
|
||
|
||
-- 3. 用户-角色关联表
|
||
CREATE TABLE IF NOT EXISTS user_role (
|
||
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键',
|
||
user_id BIGINT NOT NULL COMMENT '用户ID',
|
||
role_id BIGINT NOT NULL COMMENT '角色ID',
|
||
add_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '添加时间',
|
||
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
INDEX idx_user_id(user_id),
|
||
INDEX idx_role_id(role_id)
|
||
) COMMENT='用户与角色关联表';
|
||
|
||
|
||
-- 4. 文件表
|
||
CREATE TABLE IF NOT EXISTS file (
|
||
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '文件ID',
|
||
file_name VARCHAR(255) NOT NULL COMMENT '文件名或路径',
|
||
file_path VARCHAR(512) NOT NULL COMMENT '存储路径',
|
||
add_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '添加时间',
|
||
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
|
||
) COMMENT='知识库文件表';
|
||
|
||
|
||
-- 5. 角色-文件可见规则表(适合批量规则分配权限)
|
||
CREATE TABLE IF NOT EXISTS role_file_rule (
|
||
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键',
|
||
role_id BIGINT NOT NULL COMMENT '角色ID',
|
||
file_pattern VARCHAR(255) NOT NULL COMMENT '可访问文件名/路径模式(如前缀、正则)',
|
||
remark VARCHAR(255) COMMENT '规则说明',
|
||
add_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '添加时间',
|
||
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
INDEX idx_role_id(role_id)
|
||
) COMMENT='角色-文件可访问规则表';
|
||
|
||
-- 6. 用户token表
|
||
CREATE TABLE IF NOT EXISTS user_token (
|
||
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键,自增',
|
||
user_id BIGINT NOT NULL COMMENT '用户ID,业务逻辑关联user表',
|
||
token VARCHAR(128) NOT NULL UNIQUE COMMENT '用户登录token',
|
||
login_at BIGINT NOT NULL COMMENT '登录时间(毫秒时间戳)',
|
||
expired_at BIGINT NOT NULL COMMENT '过期时间(毫秒时间戳)',
|
||
add_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '添加时间',
|
||
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
INDEX idx_user_id(user_id),
|
||
INDEX idx_token(token)
|
||
) COMMENT='用户登录Token表';
|
||
|
||
|
||
-- 7. 用户-文件直接授权关联表
|
||
CREATE TABLE IF NOT EXISTS user_file (
|
||
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键',
|
||
user_id BIGINT NOT NULL COMMENT '用户ID',
|
||
file_id BIGINT NOT NULL COMMENT '文件ID',
|
||
add_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '添加时间',
|
||
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
INDEX idx_user_id(user_id),
|
||
INDEX idx_file_id(file_id),
|
||
UNIQUE INDEX uniq_user_file(user_id, file_id)
|
||
) COMMENT='用户-文件直接授权关联表(用于特殊文件个别授权)';
|
||
|
||
|
||
|