first commit
This commit is contained in:
commit
c207f1e152
10
1781687373_create_category.up.sql
Normal file
10
1781687373_create_category.up.sql
Normal file
@ -0,0 +1,10 @@
|
||||
CREATE TABLE `category` (
|
||||
`id` INT PRIMARY KEY AUTO_INCREMENT COMMENT '分类ID',
|
||||
`parent_id` INT DEFAULT 0 COMMENT '父分类ID,0表示顶级分类',
|
||||
`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 = '课程系列分类表';
|
||||
11
1781687840_create_course_series.up.sql
Normal file
11
1781687840_create_course_series.up.sql
Normal 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 = '课程系列表';
|
||||
29
1781687994_create_course.up.sql
Normal file
29
1781687994_create_course.up.sql
Normal 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='月度课程表';
|
||||
23
1781688012_create_video.up.sql
Normal file
23
1781688012_create_video.up.sql
Normal 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='视频表';
|
||||
Loading…
Reference in New Issue
Block a user