first commit

This commit is contained in:
Hankin 2026-06-18 10:58:49 +08:00
commit c207f1e152
4 changed files with 73 additions and 0 deletions

View File

@ -0,0 +1,10 @@
CREATE TABLE `category` (
`id` INT PRIMARY KEY AUTO_INCREMENT COMMENT '分类ID',
`parent_id` INT DEFAULT 0 COMMENT '父分类ID0表示顶级分类',
`name` VARCHAR(100) NOT NULL COMMENT '分类名称',
`description` VARCHAR(255) COMMENT '分类描述',
`sort_order` INT DEFAULT 0 COMMENT '排序权重(数字越小越靠前)',
`is_active` TINYINT DEFAULT 1 COMMENT '是否启用1-禁用 2-启用',
`created_at` TIMESTAMP DEFAULT NULL COMMENT '创建时间',
`updated_at` TIMESTAMP DEFAULT NULL COMMENT '更新时间'
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '课程系列分类表';

View File

@ -0,0 +1,11 @@
CREATE TABLE `course_series` (
`id` INT PRIMARY KEY AUTO_INCREMENT COMMENT '系列ID',
`category_id` INT DEFAULT NULL COMMENT '所属分类ID可空表示未分类',
`title` VARCHAR(255) NOT NULL COMMENT '系列名称Python全栈开发',
`description` TEXT COMMENT '系列简介',
`cover_image` VARCHAR(500) COMMENT '系列封面图URL',
`total_months` INT DEFAULT 10 COMMENT '总月数固定10个月',
`is_active` TINYINT DEFAULT 1 COMMENT '是否启用1-禁用 2-启用',
`created_at` TIMESTAMP DEFAULT NULL COMMENT '创建时间',
`updated_at` TIMESTAMP DEFAULT NULL COMMENT '更新时间'
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '课程系列表';

View File

@ -0,0 +1,29 @@
CREATE TABLE `course` (
`id` INT PRIMARY KEY AUTO_INCREMENT COMMENT '月度课程ID',
`series_id` INT NOT NULL COMMENT '所属系列ID',
-- 时间标识
`year` INT NOT NULL COMMENT '开课年份如2026',
`month` TINYINT NOT NULL COMMENT '几月1~12例如 3 表示3月份',
-- 课程信息
`title` VARCHAR(255) NOT NULL COMMENT '月度课程名称',
`description` TEXT COMMENT '月度课程简介',
`cover_image` VARCHAR(500) COMMENT '月度课程封面',
-- 价格与售卖
`price` DECIMAL(10, 2) NOT NULL DEFAULT 0.00 COMMENT '售价(元)',
`original_price` DECIMAL(10, 2) COMMENT '原价/划线价',
`is_published` TINYINT DEFAULT 1 COMMENT '是否上架1-下架 2-上架',
-- 时间戳
`created_at` TIMESTAMP DEFAULT NULL COMMENT '创建时间',
`updated_at` TIMESTAMP DEFAULT NULL COMMENT '更新时间',
FOREIGN KEY (`series_id`) REFERENCES `course_series` (`id`) ON DELETE CASCADE,
-- 唯一约束:同一系列同一年同一月份只能有一条记录
UNIQUE KEY `uk_series_year_month` (`series_id`, `year`, `month`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='月度课程表';

View File

@ -0,0 +1,23 @@
CREATE TABLE `video` (
`id` INT PRIMARY KEY AUTO_INCREMENT COMMENT '视频ID',
`course_id` INT NOT NULL COMMENT '所属月度课程ID',
`title` VARCHAR(255) NOT NULL COMMENT '视频标题',
`description` TEXT COMMENT '视频描述',
`video_url` VARCHAR(500) NOT NULL COMMENT '视频播放地址云存储URL',
`cover_image` VARCHAR(500) COMMENT '视频封面图',
`duration` INT COMMENT '视频时长(秒)',
`video_order` INT NOT NULL COMMENT '视频在课程内的顺序1~20',
`release_date` DATE COMMENT '发布日期(具体某一天)',
`is_free` TINYINT DEFAULT 1 COMMENT '是否免费试看1-付费 2-免费',
`created_at` TIMESTAMP DEFAULT NULL COMMENT '创建时间',
`updated_at` TIMESTAMP DEFAULT NULL COMMENT '更新时间',
FOREIGN KEY (`course_id`) REFERENCES `course`(`id`) ON DELETE CASCADE,
-- 同一课程内顺序唯一
UNIQUE KEY `uk_course_order` (`course_id`, `video_order`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='视频表';