135 lines
6.8 KiB
SQL
135 lines
6.8 KiB
SQL
-- yh_web 建表语句(MySQL 5.7+ / MariaDB 10.2+)
|
||
-- 与当前功能及线上已有结构对应,便于迁移或对照。主键使用 VARCHAR(24) 与 MongoDB ObjectID 字符串形式兼容。
|
||
|
||
SET NAMES utf8mb4;
|
||
|
||
-- -------------------------------
|
||
-- 站点
|
||
-- -------------------------------
|
||
CREATE TABLE IF NOT EXISTS `sites` (
|
||
`id` VARCHAR(24) NOT NULL COMMENT '主键,与 MongoDB ObjectID 字符串一致',
|
||
`name` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '站点名称',
|
||
`domain` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '域名',
|
||
`description` TEXT COMMENT '描述',
|
||
`created_at` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '创建时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_created_at` (`created_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='站点表';
|
||
|
||
-- -------------------------------
|
||
-- 网页(属于某站点)
|
||
-- -------------------------------
|
||
CREATE TABLE IF NOT EXISTS `pages` (
|
||
`id` VARCHAR(24) NOT NULL COMMENT '主键',
|
||
`site_id` VARCHAR(24) NOT NULL DEFAULT '' COMMENT '站点ID',
|
||
`slug` VARCHAR(128) NOT NULL DEFAULT '' COMMENT '路径标识 index, about, ...',
|
||
`title` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '标题',
|
||
`type` VARCHAR(32) NOT NULL DEFAULT 'page' COMMENT '类型 homepage, page',
|
||
`content` LONGTEXT COMMENT 'HTML 或 JSON 字符串',
|
||
`updated_at` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_site_slug` (`site_id`, `slug`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='网页表';
|
||
|
||
-- -------------------------------
|
||
-- 站点资源/上传文件
|
||
-- -------------------------------
|
||
CREATE TABLE IF NOT EXISTS `site_assets` (
|
||
`id` VARCHAR(24) NOT NULL COMMENT '主键',
|
||
`site_id` VARCHAR(24) NOT NULL DEFAULT '' COMMENT '站点ID',
|
||
`name` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '文件名/显示名',
|
||
`file_path` VARCHAR(512) NOT NULL DEFAULT '' COMMENT '相对路径',
|
||
`size` BIGINT NOT NULL DEFAULT 0 COMMENT '字节数',
|
||
`content_type` VARCHAR(128) NOT NULL DEFAULT '' COMMENT 'MIME 类型',
|
||
`created_at` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '创建时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_site_id` (`site_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='站点资源表';
|
||
|
||
-- -------------------------------
|
||
-- 用户
|
||
-- -------------------------------
|
||
CREATE TABLE IF NOT EXISTS `users` (
|
||
`id` VARCHAR(24) NOT NULL COMMENT '主键',
|
||
`username` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '用户名',
|
||
`mobile` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '手机号',
|
||
`email` VARCHAR(128) NOT NULL DEFAULT '' COMMENT '邮箱',
|
||
`password` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '密码哈希',
|
||
`role` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '角色名',
|
||
`role_id` INT NOT NULL DEFAULT 1 COMMENT '9527=超级管理员 1=普通用户',
|
||
`is_beta` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否体验用户',
|
||
`trial_start_date` VARCHAR(16) NOT NULL DEFAULT '' COMMENT '试用开始日期',
|
||
`trial_end_date` VARCHAR(16) NOT NULL DEFAULT '' COMMENT '试用结束日期',
|
||
`last_login` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '最后登录时间',
|
||
`llm` VARCHAR(64) NOT NULL DEFAULT '' COMMENT 'LLM 配置',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_username` (`username`),
|
||
KEY `idx_mobile` (`mobile`),
|
||
KEY `idx_email` (`email`),
|
||
KEY `idx_role_id` (`role_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户表';
|
||
|
||
-- -------------------------------
|
||
-- 工作空间
|
||
-- -------------------------------
|
||
CREATE TABLE IF NOT EXISTS `workspaces` (
|
||
`id` VARCHAR(24) NOT NULL COMMENT '主键',
|
||
`name` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '名称',
|
||
`user_id` VARCHAR(24) NOT NULL DEFAULT '' COMMENT '用户ID',
|
||
`created_at` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '创建时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_user_id` (`user_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='工作空间表';
|
||
|
||
-- -------------------------------
|
||
-- 对话
|
||
-- -------------------------------
|
||
CREATE TABLE IF NOT EXISTS `conversations` (
|
||
`id` VARCHAR(24) NOT NULL COMMENT '主键',
|
||
`title` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '标题',
|
||
`user_id` VARCHAR(24) NOT NULL DEFAULT '' COMMENT '用户ID',
|
||
`workspace_id` VARCHAR(24) NOT NULL DEFAULT '' COMMENT '工作空间ID',
|
||
`created_at` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '创建时间',
|
||
`updated_at` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_user_id` (`user_id`),
|
||
KEY `idx_workspace_id` (`workspace_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='对话表';
|
||
|
||
-- -------------------------------
|
||
-- 消息(统计用,功能上若未实现可先建表)
|
||
-- -------------------------------
|
||
CREATE TABLE IF NOT EXISTS `messages` (
|
||
`id` VARCHAR(24) NOT NULL COMMENT '主键',
|
||
`conversation_id` VARCHAR(24) NOT NULL DEFAULT '' COMMENT '对话ID',
|
||
`role` VARCHAR(16) NOT NULL DEFAULT '' COMMENT 'role: user/assistant/system',
|
||
`content` LONGTEXT COMMENT '内容',
|
||
`created_at` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '创建时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_conversation_id` (`conversation_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='消息表';
|
||
|
||
-- -------------------------------
|
||
-- 文件(统计用,功能上若未实现可先建表)
|
||
-- -------------------------------
|
||
CREATE TABLE IF NOT EXISTS `files` (
|
||
`id` VARCHAR(24) NOT NULL COMMENT '主键',
|
||
`user_id` VARCHAR(24) NOT NULL DEFAULT '' COMMENT '用户ID',
|
||
`name` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '文件名',
|
||
`file_path` VARCHAR(512) NOT NULL DEFAULT '' COMMENT '存储路径',
|
||
`size` BIGINT NOT NULL DEFAULT 0 COMMENT '字节数',
|
||
`created_at` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '创建时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_user_id` (`user_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='文件表';
|
||
|
||
-- -------------------------------
|
||
-- 系统配置(键值,_id 为配置键:payment / sms_platform)
|
||
-- -------------------------------
|
||
CREATE TABLE IF NOT EXISTS `system_config` (
|
||
`id` VARCHAR(64) NOT NULL COMMENT '配置键 payment, sms_platform 等',
|
||
`payload` JSON COMMENT '配置内容(支付/短信等)',
|
||
`updated_at` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '更新时间',
|
||
PRIMARY KEY (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统配置表';
|