数据库表设计题目
以下是一个 MySQL 表设计的需求题目,包含业务场景、功能需求和设计要求,适合用于练习表结构设计及关联关系建模:
业务场景
设计一个「在线教育平台」的数据库,用于管理课程、教师、学生、订单及学习记录等信息。
功能需求
用户模块
-
- 系统包含两类用户:教师和学生,需记录用户基本信息(姓名、手机号、邮箱、注册时间等)。
- 教师需额外记录职称、简介、擅长领域等信息。
- 学生需额外记录年级、所在学校(可选)等信息。
课程模块
-
- 课程分为「免费课程」和「付费课程」,需记录课程名称、简介、封面图、创建时间、时长(分钟)、状态(上架 / 下架)。
- 付费课程需记录价格、优惠价(可选)、有效期(购买后可观看的天数)。
- 课程可属于多个分类(如「编程」「设计」「语言」),一个分类可包含多门课程。
教师与课程关联
-
- 一门课程可由多位教师共同授课,一位教师可讲授多门课程。
学生学习记录
-
- 学生可报名课程:
- 免费课程可直接报名,付费课程需生成订单并完成支付后报名。
- 记录报名时间、学习进度(百分比)、最后学习时间、是否完成课程。
- 学生可对已完成的课程进行评价(评分 1-5 星,评论内容,评价时间)。
- 学生可报名课程:
订单与支付
-
- 记录订单信息:订单号、下单时间、支付状态(未支付 / 已支付 / 已取消)、支付方式(支付宝 / 微信 / 银行卡)。
- 支持一个订单包含多门课程(批量购买)
以下是一个 MySQL 表设计的需求题目,包含业务场景、功能需求和设计要求,适合用于练习表结构设计及关联关系建模:
业务场景
设计一个「在线教育平台」的数据库,用于管理课程、教师、学生、订单及学习记录等信息。
功能需求
用户模块
-
- 系统包含两类用户:教师和学生,需记录用户基本信息(姓名、手机号、邮箱、注册时间等)。
- 教师需额外记录职称、简介、擅长领域等信息。
- 学生需额外记录年级、所在学校(可选)等信息。
课程模块
-
- 课程分为「免费课程」和「付费课程」,需记录课程名称、简介、封面图、创建时间、时长(分钟)、状态(上架 / 下架)。
- 付费课程需记录价格、优惠价(可选)、有效期(购买后可观看的天数)。
- 课程可属于多个分类(如「编程」「设计」「语言」),一个分类可包含多门课程。
教师与课程关联
-
- 一门课程可由多位教师共同授课,一位教师可讲授多门课程。
学生学习记录
-
- 学生可报名课程:
- 免费课程可直接报名,付费课程需生成订单并完成支付后报名。
- 记录报名时间、学习进度(百分比)、最后学习时间、是否完成课程。
- 学生可对已完成的课程进行评价(评分 1-5 星,评论内容,评价时间)。
- 学生可报名课程:
订单与支付
-
- 记录订单信息:订单号、下单时间、支付状态(未支付 / 已支付 / 已取消)、支付方式(支付宝 / 微信 / 银行卡)。
- 支持一个订单包含多门课程(批量购买)
参考答案:
教师
编号 、姓名、手机号、邮箱、注册时间、职称、简介、擅长领域
学生
编号 、姓名、手机号、邮箱、注册时间、年级、学校
课程
编号 、类型(免费课程\付费课程\1、2)、分类(外键)、课程名称、简介、封面图、创建时间、时长(分钟)、状态(上架 / 下架)、价格、优惠价、有效期
课程分类
编号 、分类名称
教师与课程关联
编号 、老师外键、课程的外键
1 1 1
2 1 2
3 2 2
学习记录
编号 、学生(外键)、是否付费课程(1,2)、报名时间、学习进度、最后学习时间、是否完成课程
评价表
编号 、学生(外键)、课程(外键)、评分、评论内容、时间
订单表
编号 、学生(外键)、支付状态、支付方式
订单详情表
编号 、课程(外键)、订单(外键)