Files
web/sql/init.sql
2026-03-17 01:00:11 +08:00

135 lines
6.8 KiB
SQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- 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='系统配置表';