agent-skill-backend/db/create_tables.sql

311 lines
17 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 '账户余额',
`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='账户表,记录用户的账户信息';
-- 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.其他',
`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 '交易备注',
`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='账户流水表,记录用户的账户交易记录';
-- 3. 积分账户表
DROP TABLE IF EXISTS `points_account`;
CREATE TABLE `points_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 '用户名',
`total_points` int(11) DEFAULT '0' COMMENT '总积分',
`available_points` int(11) DEFAULT '0' COMMENT '可用积分',
`frozen_points` int(11) DEFAULT '0' 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='积分账户表,记录用户的积分信息';
-- 4. 积分流水表
DROP TABLE IF EXISTS `points_transaction`;
CREATE TABLE `points_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.其他',
`points` int(11) NOT NULL COMMENT '变动积分',
`before_points` int(11) NOT NULL COMMENT '变动前积分',
`after_points` int(11) 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 '备注',
`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='系统日志表,记录系统操作日志';
SET FOREIGN_KEY_CHECKS = 1;