关于course_content_file表的创建的追问

来源:8-8 作业讲解:课程内容中增加文件管理

慕神4535282

2020-08-11

我讨论的重点不是表名的更改,而是表结构,即

create table course_content_file (
	id char(8) not null default ‘’ comment ‘id’,
	course_id char(8) not null comment ‘课程id’,
	url varchar(100) comment ‘地址’,
	name varchar(100) comment ‘文件名’,
	size int comment ‘大小|字节b’,
	primary key (id)
) engine=innodb default charset=utf8mb4 comment=‘课程内容文件’;

改为

create table course_file (
	id char(8) not null default ‘’ comment ‘id’,
	course_id char(8) comment ‘课程id|course.id’,
	file_id char(8) comment ‘文件id|file.id’,
	primary key (id)
) engine=innodb default charset=utf8mb4 comment=‘课程文件’;

原因是受 “ 课程分类” 表的启发,

create table course_category (
	id char(8) not null default ‘’ comment ‘id’,
	course_id char(8) comment ‘课程|course.id’,
	category_id char(8) comment ‘分类|course.id’,
	primary key (id)
) engine=innodb default charset=utf8mb4 comment=‘课程分类’;

因为 course_content_file 中的 url, name, size 都来自file表的 path, name, size,想听听老师的想法?

写回答

1回答

甲蛙

2020-08-11

你是想直接和file表关联起来?这样也是可以的,没问题。我是考虑要在内容页面显示文件信息,且不需要分片相关的字段,所以将几个必要的字段冗余成一张course_content_file表。

0
1
慕神4535282
哦,明白了,在后面的课程中,会向file表中新增(`shard_index` int comment '已上传分片'); (`shard_size` int comment '分片大小|B'); (`shard_total` int comment '分片总数'); (`key` varchar(32) comment '文件标识'); 这些与分片相关的字段,这些字段没必要在课程内容页面中显示,所以,将几个必要的字段冗余成一张course_content_file表
2020-08-12
共1条回复

Spring Cloud+ Vue前后端分离开发企业级在线视频系统

全网稀缺课程 市场热门项目+主流框架 一课掌握前后端技术

1743 学习 · 1697 问题

查看课程