关于section表?
来源:10-4 基于OSS原生SDK上传视频到点播1

慕神4535282
2021-03-26
老师,请教一个问题,本节中,section表新增了一个vod的字段。
ALTER TABLE `section` ADD COLUMN (
`vod` CHAR(32) COMMENT 'VOD|阿里云VOD'
);
请问老师,为何不是在 section 表中新增一个 file_id 的字段,而是在section表中新增一个vod的字段呢,这也不太符合老师你以往的风格,以往像A表要关联B表,你也是在A表中新增一个B表的Id. e.g: course表要关联teacher表,就是如此。
我的理由有几点:
- section表要关联file表,与 course 表关联 teacher表一样,都是一对多的关系(后者对前者)。一节下只能有一个文件,而一个文件可以对应多个小节。同理,一个course下只能有一个teacher,而一个teacher可以教多门课。为此,在course表中新增了一个 teacher_id的字段来关联teacher表,那基于这个逻辑,不是应该在 section表中新增一个 file_id 来关联file表吗?
- 因为file表中的vod不是unique key,不像file表中的id一样有unique的性质,因此,如果根据 section 表中的 vod来查询 file表的符合的记录,有可能会查出来多条,从而得不到准确关联的那一条。
- 同上,如果我要查section表的某一章关联文件的大小,根据vod的话,也没办法准备查询出来,因为会返回多条记录。
- 以上几种情况,如果section采用新增 file_id 而不是新增 vod 的话,都可以轻松解决。
- 请问老师,我上面的说法对吗? 你采用 vod 的原因是?
写回答
1回答
-
这里主要是考虑读取方便,因为对视频播放来说,只要一个vod信息就可以了,像头像、视频这些字段,我们都是存具体的值的,而不是关联file,否则每次读文件相关的字段,都得去关联file表。
当然,如果你需要更多的信息,确实是用file_id来关联比较合理
012021-03-29
相似问题