agent-skill-backend/db/create_tables.sql

322 lines
18 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.

-- 创建数据库表结构
-- 作者: 王志维
-- 创建时间: 2026-01-20
-- 设置字符集
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- 1. 账户表
DROP TABLE IF EXISTS `account`;
CREATE TABLE `account` (
`account_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
`user_name` varchar(50) DEFAULT NULL COMMENT '用户名',
`balance` decimal(10,2) DEFAULT '0.00' COMMENT '账户总余额',
`withdrawable_balance` decimal(10,2) DEFAULT '0.00' COMMENT '可提现余额',
`non_withdrawable_balance` decimal(10,2) DEFAULT '0.00' COMMENT '不可提现余额',
`frozen_amount` decimal(10,2) DEFAULT '0.00' COMMENT '冻结金额',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`delete_flag` tinyint(1) DEFAULT '0' COMMENT '是否删除 0 未删除1已删除',
PRIMARY KEY (`account_id`),
KEY `idx_user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='账户表,记录用户的账户信息';
-- 18. 提现记录表
DROP TABLE IF EXISTS `withdrawal_record`;
CREATE TABLE `withdrawal_record` (
`record_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
`user_name` varchar(50) DEFAULT NULL COMMENT '用户名',
`withdrawal_amount` decimal(10,2) NOT NULL COMMENT '提现金额',
`fee_amount` decimal(10,2) NOT NULL COMMENT '手续费',
`actual_amount` decimal(10,2) NOT NULL COMMENT '实际到账金额',
`status` tinyint(1) NOT NULL COMMENT '提现状态1.待处理 2.处理中 3.成功 4.失败',
`withdrawal_no` varchar(50) NOT NULL COMMENT '提现单号',
`bank_name` varchar(100) DEFAULT NULL COMMENT '银行名称',
`bank_account` varchar(100) DEFAULT NULL COMMENT '银行账号',
`bank_cardholder` varchar(50) DEFAULT NULL COMMENT '持卡人姓名',
`remark` varchar(255) DEFAULT NULL COMMENT '备注',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`delete_flag` tinyint(1) DEFAULT '0' COMMENT '是否删除 0 未删除1已删除',
PRIMARY KEY (`record_id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_withdrawal_no` (`withdrawal_no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='提现记录表,记录用户的提现记录';
-- 2. 账户流水表
DROP TABLE IF EXISTS `account_transaction`;
CREATE TABLE `account_transaction` (
`transaction_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
`user_name` varchar(50) DEFAULT NULL COMMENT '用户名',
`transaction_type` tinyint(1) NOT NULL COMMENT '交易类型1.充值 2.提现 3.购买内容 4.退款 5.签到奖励 6.赠送 7.其他',
`amount` decimal(10,2) NOT NULL COMMENT '交易金额',
`before_balance` decimal(10,2) NOT NULL COMMENT '交易前余额',
`after_balance` decimal(10,2) NOT NULL COMMENT '交易后余额',
`status` tinyint(1) NOT NULL COMMENT '交易状态1.成功 2.失败 3.处理中',
`transaction_no` varchar(50) NOT NULL COMMENT '交易单号',
`pay_type` tinyint(1) DEFAULT NULL COMMENT '支付方式1.微信 2.支付宝 3.余额支付',
`business_id` bigint(20) DEFAULT NULL COMMENT '关联业务ID',
`business_type` varchar(50) DEFAULT NULL COMMENT '业务类型',
`remark` varchar(255) DEFAULT NULL COMMENT '交易备注',
`is_expense` tinyint(1) NOT NULL COMMENT '是否支出1.是 0.否',
`input_token` int(11) DEFAULT NULL COMMENT '输入token',
`output_token` int(11) DEFAULT NULL COMMENT '输出token',
`total_tokens` int(11) DEFAULT NULL COMMENT '合计tokens',
`model_name` varchar(100) DEFAULT NULL COMMENT '处理的模型名称',
`question` text DEFAULT NULL COMMENT '对应回答的问题或需求',
`income_type` varchar(50) DEFAULT NULL COMMENT '收入类型recharge(充值)、sign_in(签到奖励)',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`create_by` varchar(50) DEFAULT NULL COMMENT '创建人',
`update_by` varchar(50) DEFAULT NULL COMMENT '更新人',
`delete_flag` tinyint(1) DEFAULT '0' COMMENT '是否删除 0 未删除1已删除',
PRIMARY KEY (`transaction_id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_transaction_no` (`transaction_no`),
KEY `idx_business_id` (`business_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='账户流水表,记录用户的账户交易记录';
-- 5. 内容购买记录表
DROP TABLE IF EXISTS `content_purchase`;
CREATE TABLE `content_purchase` (
`purchase_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
`user_name` varchar(50) DEFAULT NULL COMMENT '用户名',
`content_id` bigint(20) NOT NULL COMMENT '内容ID',
`content_title` varchar(255) DEFAULT NULL COMMENT '内容标题',
`pay_type` tinyint(1) NOT NULL COMMENT '购买方式1.余额支付 2.积分支付',
`amount` decimal(10,2) DEFAULT NULL COMMENT '支付金额',
`points` int(11) DEFAULT NULL COMMENT '支付积分',
`status` tinyint(1) NOT NULL COMMENT '购买状态1.待支付 2.已支付 3.已取消',
`purchase_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '购买时间',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`delete_flag` tinyint(1) DEFAULT '0' COMMENT '是否删除 0 未删除1已删除',
PRIMARY KEY (`purchase_id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_content_id` (`content_id`),
KEY `idx_user_content` (`user_id`,`content_id`) COMMENT '联合索引,用于快速查询用户是否已购买某内容'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='内容购买记录表,记录用户购买的内容信息';
-- 6. 支付订单表
DROP TABLE IF EXISTS `payment_order`;
CREATE TABLE `payment_order` (
`order_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`order_no` varchar(50) NOT NULL COMMENT '订单号',
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
`user_name` varchar(50) DEFAULT NULL COMMENT '用户名',
`amount` decimal(10,2) NOT NULL COMMENT '支付金额',
`pay_type` tinyint(1) NOT NULL COMMENT '支付方式1.微信 2.支付宝',
`status` tinyint(1) NOT NULL COMMENT '支付状态1.待支付 2.已支付 3.支付失败 4.已取消 5.已退款',
`channel_order_no` varchar(50) DEFAULT NULL COMMENT '支付渠道订单号',
`product_name` varchar(255) DEFAULT NULL COMMENT '商品名称',
`product_desc` varchar(255) DEFAULT NULL COMMENT '商品描述',
`business_id` bigint(20) DEFAULT NULL COMMENT '关联业务ID',
`business_type` varchar(50) DEFAULT NULL COMMENT '业务类型',
`notify_url` varchar(255) DEFAULT NULL COMMENT '支付回调地址',
`return_url` varchar(255) DEFAULT NULL COMMENT '支付成功跳转地址',
`expire_time` datetime DEFAULT NULL COMMENT '过期时间',
`pay_time` datetime DEFAULT NULL COMMENT '支付时间',
`remark` varchar(255) DEFAULT NULL COMMENT '支付备注',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`delete_flag` tinyint(1) DEFAULT '0' COMMENT '是否删除 0 未删除1已删除',
PRIMARY KEY (`order_id`),
KEY `idx_order_no` (`order_no`),
KEY `idx_user_id` (`user_id`),
KEY `idx_business_id` (`business_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='支付订单表,记录用户的支付请求和支付结果';
-- 7. 内容表
DROP TABLE IF EXISTS `cms_content`;
CREATE TABLE `cms_content` (
`content_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`title` varchar(255) NOT NULL COMMENT '标题',
`subtitle` varchar(255) DEFAULT NULL COMMENT '副标题',
`content_type` tinyint(1) NOT NULL COMMENT '内容类型1文章2视频3图片',
`category_ids` varchar(255) DEFAULT NULL COMMENT '分类ID列表逗号分隔',
`summary` varchar(500) DEFAULT NULL COMMENT '内容摘要',
`content` longtext DEFAULT NULL COMMENT '内容详情',
`cover_image` varchar(255) DEFAULT NULL COMMENT '封面图片',
`author_id` bigint(20) DEFAULT NULL COMMENT '作者ID',
`author_name` varchar(50) DEFAULT NULL COMMENT '作者名称',
`reviewer_id` bigint(20) DEFAULT NULL COMMENT '审核人ID',
`reviewer_name` varchar(50) DEFAULT NULL COMMENT '审核人名称',
`audit_status` tinyint(1) NOT NULL COMMENT '审核状态1草稿2待审核3审核通过4审核拒绝',
`audit_comment` varchar(255) DEFAULT NULL COMMENT '审核意见',
`publish_status` tinyint(1) NOT NULL COMMENT '发布状态1未发布2已发布3已下架',
`publish_time` datetime DEFAULT NULL COMMENT '发布时间',
`view_count` int(11) DEFAULT '0' COMMENT '阅读量',
`like_count` int(11) DEFAULT '0' COMMENT '点赞量',
`comment_count` int(11) DEFAULT '0' COMMENT '评论量',
`sort` int(11) DEFAULT '0' COMMENT '排序',
`is_paid` tinyint(1) DEFAULT '0' COMMENT '是否付费0免费1付费',
`price` decimal(10,2) DEFAULT NULL COMMENT '付费金额',
`required_points` int(11) DEFAULT NULL COMMENT '所需积分',
`support_points_pay` tinyint(1) DEFAULT '0' COMMENT '是否支持积分支付0不支持1支持',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`create_by` varchar(50) DEFAULT NULL COMMENT '创建人',
`update_by` varchar(50) DEFAULT NULL COMMENT '更新人',
`delete_flag` tinyint(1) DEFAULT '0' COMMENT '是否删除 0 未删除1已删除',
PRIMARY KEY (`content_id`),
KEY `idx_author_id` (`author_id`),
KEY `idx_audit_status` (`audit_status`),
KEY `idx_publish_status` (`publish_status`),
KEY `idx_publish_time` (`publish_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='内容表,记录各种类型的内容信息';
-- 8. 分类表
DROP TABLE IF EXISTS `cms_category`;
CREATE TABLE `cms_category` (
`category_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`category_name` varchar(50) NOT NULL COMMENT '分类名称',
`parent_id` bigint(20) DEFAULT '0' COMMENT '父分类ID',
`level` int(11) DEFAULT '1' COMMENT '分类层级',
`sort` int(11) DEFAULT '0' COMMENT '排序',
`status` tinyint(1) DEFAULT '1' COMMENT '状态1启用2禁用',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`create_by` varchar(50) DEFAULT NULL COMMENT '创建人',
`update_by` varchar(50) DEFAULT NULL COMMENT '更新人',
`delete_flag` tinyint(1) DEFAULT '0' COMMENT '是否删除 0 未删除1已删除',
PRIMARY KEY (`category_id`),
KEY `idx_parent_id` (`parent_id`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='分类表,记录内容的分类信息';
-- 9. 标签表
DROP TABLE IF EXISTS `cms_tag`;
CREATE TABLE `cms_tag` (
`tag_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`tag_name` varchar(50) NOT NULL COMMENT '标签名称',
`description` varchar(255) DEFAULT NULL COMMENT '标签描述',
`use_count` int(11) DEFAULT '0' COMMENT '使用次数',
`status` tinyint(1) DEFAULT '1' COMMENT '状态1启用2禁用',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`create_by` varchar(50) DEFAULT NULL COMMENT '创建人',
`update_by` varchar(50) DEFAULT NULL COMMENT '更新人',
`delete_flag` tinyint(1) DEFAULT '0' COMMENT '是否删除 0 未删除1已删除',
PRIMARY KEY (`tag_id`),
UNIQUE KEY `uk_tag_name` (`tag_name`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='标签表,记录内容的标签信息';
-- 10. 系统用户表
DROP TABLE IF EXISTS `sys_user`;
CREATE TABLE `sys_user` (
`user_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_name` varchar(50) NOT NULL COMMENT '用户登录名称',
`pwd` varchar(100) NOT NULL COMMENT '密码(非明文)',
`real_name` varchar(50) DEFAULT NULL COMMENT '真实姓名',
`tel` varchar(20) DEFAULT NULL COMMENT '手机',
`email` varchar(50) DEFAULT NULL COMMENT '邮箱',
`salt` varchar(50) DEFAULT NULL COMMENT '加点盐(登录时候要用到的随机数)',
`remark` varchar(255) DEFAULT NULL COMMENT '备注',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`enable` tinyint(1) DEFAULT '1' COMMENT '是否启用1启用2禁用',
`delete_flag` tinyint(1) DEFAULT '0' COMMENT '是否删除 0 未删除1已删除',
PRIMARY KEY (`user_id`),
UNIQUE KEY `uk_user_name` (`user_name`),
KEY `idx_enable` (`enable`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='系统用户表,记录系统用户信息';
-- 11. 系统角色表
DROP TABLE IF EXISTS `sys_role`;
CREATE TABLE `sys_role` (
`role_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '角色ID',
`role_code` varchar(50) NOT NULL COMMENT '角色编码',
`role_name` varchar(50) NOT NULL COMMENT '角色名称',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`remark` varchar(255) DEFAULT NULL COMMENT '备注',
`delete_flag` varchar(1) DEFAULT '0' COMMENT '删除标记',
PRIMARY KEY (`role_id`),
UNIQUE KEY `uk_role_code` (`role_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='系统角色表,记录系统角色信息';
-- 12. 系统用户角色关联表
DROP TABLE IF EXISTS `sys_user_role`;
CREATE TABLE `sys_user_role` (
`role_id` bigint(20) NOT NULL COMMENT '角色ID',
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
PRIMARY KEY (`role_id`,`user_id`),
KEY `idx_user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='系统用户角色关联表,记录用户与角色的关联关系';
-- 13. 系统菜单表
DROP TABLE IF EXISTS `sys_menu`;
CREATE TABLE `sys_menu` (
`menu_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`menu_pid` bigint(20) DEFAULT NULL COMMENT '为空时表示是子系统',
`menu_name` varchar(50) NOT NULL COMMENT '菜单名称',
`menu_src` varchar(255) DEFAULT NULL COMMENT '菜单链接地址',
`menu_icon` varchar(50) DEFAULT NULL COMMENT '菜单图标',
`menu_style` varchar(50) DEFAULT NULL COMMENT '菜单样式',
`sort` int(11) DEFAULT '0' COMMENT '值越小越排在前面',
`note` varchar(255) DEFAULT NULL COMMENT '备注',
`delete_flag` varchar(1) DEFAULT '0' COMMENT '删除标记',
PRIMARY KEY (`menu_id`),
KEY `idx_menu_pid` (`menu_pid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='系统菜单表,记录系统菜单信息';
-- 14. 系统字典表
DROP TABLE IF EXISTS `sys_dict`;
CREATE TABLE `sys_dict` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '字典表ID',
`dict_code` varchar(50) NOT NULL COMMENT '字典编码',
`dict_name` varchar(50) NOT NULL COMMENT '字典名称',
`dict_cn` varchar(50) DEFAULT NULL COMMENT '字典值中文文本',
`dict_en` varchar(50) DEFAULT NULL COMMENT '字典值英文文本',
`dict_value` varchar(50) DEFAULT NULL COMMENT '字典值',
`sorts` int(11) DEFAULT NULL COMMENT '字典排序',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `idx_dict_code` (`dict_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='系统字典表,记录系统字典信息';
-- 15. 系统日志表
DROP TABLE IF EXISTS `sys_log`;
CREATE TABLE `sys_log` (
`log_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` varchar(50) DEFAULT NULL COMMENT '用户ID',
`user_name` varchar(50) DEFAULT NULL COMMENT '用户名称',
`log_type` varchar(50) DEFAULT NULL COMMENT '日志类型',
`log_content` varchar(500) DEFAULT NULL COMMENT '日志类容',
`server_ip` varchar(20) DEFAULT NULL COMMENT '服务端IP',
`client_ip` varchar(20) DEFAULT NULL COMMENT '客户端IP',
`log_time` varchar(20) DEFAULT NULL COMMENT 'yyyyMMddHHmmss',
`note` varchar(255) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`log_id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_log_type` (`log_type`),
KEY `idx_log_time` (`log_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='系统日志表,记录系统操作日志';
-- 16. 大模型Token价格表
DROP TABLE IF EXISTS `model_price`;
CREATE TABLE `model_price` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`vendor` varchar(64) NOT NULL COMMENT '厂商',
`model_name` varchar(128) NOT NULL COMMENT '模型名称',
`input_price` decimal(10,4) NOT NULL COMMENT '输入价格:元/百万Token',
`output_price` decimal(10,4) NOT NULL COMMENT '输出价格:元/百万Token',
`input_per_cent` bigint NOT NULL COMMENT '1分钱可购买输入Token数',
`output_per_cent` bigint NOT NULL COMMENT '1分钱可购买输出Token数',
`unit` varchar(32) DEFAULT '百万Token' COMMENT '价格单位',
`remark` varchar(255) DEFAULT '' COMMENT '备注',
`created_time` datetime DEFAULT NULL,
`updated_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_vendor` (`vendor`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='大模型Token价格表';
SET FOREIGN_KEY_CHECKS = 1;