79 lines
4.0 KiB
SQL
79 lines
4.0 KiB
SQL
-- 创建数据库
|
|
CREATE DATABASE IF NOT EXISTS file_system DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
USE file_system;
|
|
|
|
-- 用户表
|
|
CREATE TABLE IF NOT EXISTS sys_user (
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
|
|
username VARCHAR(50) NOT NULL UNIQUE COMMENT '用户名',
|
|
password VARCHAR(255) NOT NULL COMMENT '密码',
|
|
nickname VARCHAR(50) COMMENT '昵称',
|
|
avatar VARCHAR(255) COMMENT '头像',
|
|
signature VARCHAR(255) COMMENT '个性签名',
|
|
email VARCHAR(100) COMMENT '邮箱',
|
|
phone VARCHAR(20) COMMENT '手机号',
|
|
status INT DEFAULT 1 COMMENT '状态 0-禁用 1-启用',
|
|
storage_used BIGINT DEFAULT 0 COMMENT '已用存储空间(字节)',
|
|
storage_limit BIGINT DEFAULT 10737418240 COMMENT '存储限制(字节) 默认10GB',
|
|
create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
is_deleted INT DEFAULT 0 COMMENT '是否删除 0-否 1-是'
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';
|
|
|
|
-- 文件表
|
|
CREATE TABLE IF NOT EXISTS sys_file (
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
|
|
name VARCHAR(255) NOT NULL COMMENT '文件名',
|
|
type VARCHAR(50) COMMENT '文件类型',
|
|
size BIGINT DEFAULT 0 COMMENT '文件大小(字节)',
|
|
path VARCHAR(500) COMMENT '存储路径',
|
|
folder_id BIGINT COMMENT '所属文件夹ID',
|
|
user_id BIGINT NOT NULL COMMENT '所属用户ID',
|
|
is_folder INT DEFAULT 0 COMMENT '是否文件夹 0-否 1-是',
|
|
is_shared INT DEFAULT 0 COMMENT '是否共享 0-否 1-是',
|
|
deleted_at DATETIME COMMENT '删除时间',
|
|
create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
is_deleted INT DEFAULT 0 COMMENT '是否删除 0-否 1-是',
|
|
INDEX idx_user_id (user_id),
|
|
INDEX idx_folder_id (folder_id)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='文件表';
|
|
|
|
-- 文件共享表
|
|
CREATE TABLE IF NOT EXISTS sys_file_share (
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
|
|
file_id BIGINT NOT NULL COMMENT '文件ID',
|
|
owner_id BIGINT NOT NULL COMMENT '所有者ID',
|
|
share_to_user_id BIGINT NOT NULL COMMENT '共享给用户ID',
|
|
permission VARCHAR(20) DEFAULT 'view' COMMENT '权限 view-查看 edit-编辑',
|
|
create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
is_deleted INT DEFAULT 0 COMMENT '是否删除 0-否 1-是',
|
|
INDEX idx_file_id (file_id),
|
|
INDEX idx_owner_id (owner_id),
|
|
INDEX idx_share_to_user_id (share_to_user_id)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='文件共享表';
|
|
|
|
-- 消息表
|
|
CREATE TABLE IF NOT EXISTS sys_message (
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
|
|
from_user_id BIGINT NOT NULL COMMENT '发送者ID',
|
|
to_user_id BIGINT NOT NULL COMMENT '接收者ID',
|
|
content TEXT COMMENT '消息内容',
|
|
type VARCHAR(20) DEFAULT 'text' COMMENT '消息类型 text-文本 image-图片 file-文件 emoji-表情',
|
|
file_name VARCHAR(255) COMMENT '文件名',
|
|
file_size BIGINT COMMENT '文件大小',
|
|
is_read INT DEFAULT 0 COMMENT '是否已读 0-未读 1-已读',
|
|
create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
is_deleted INT DEFAULT 0 COMMENT '是否删除 0-否 1-是',
|
|
INDEX idx_from_user_id (from_user_id),
|
|
INDEX idx_to_user_id (to_user_id)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='消息表';
|
|
|
|
-- 插入默认管理员账户 (密码: admin123)
|
|
INSERT INTO sys_user (username, password, nickname, status, storage_limit)
|
|
VALUES ('admin', '$2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHsM8lE9lBOsl7iAt6Z5EH', '管理员', 1, 10737418240)
|
|
ON DUPLICATE KEY UPDATE username = username;
|