请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于section表的问题2

老师,下午好!
请教一个问题,本课中,你的业务需求是一小节下只能有一个视频文件,如果最初的业务需求(在设计section,file表前就已经明确了这个业务需求)是一小节下可以有多个视频的话,
即小节对视频文件是1对多关系,而视频文件对小节是一对一关系,
请问数据库相关的section,file表应该怎么设计呢?

是不是可以设计成:
方案1: 把现有的section表的 video,vod字段删掉,新增一个 file_id 字段。
方案2: 把现有的section表的 video,vod字段删掉,file表中新增一个section_id的字段。
其他方案?

我觉得应该是方案2,因为这符合老师你以往设计原则。
麻烦老师详细解答一下,因为这对我真的很重要,非常感谢老师的解答!

正在回答

1回答

甲蛙 2021-05-18 10:19:06

我个人不会用section和file关联,因为file是单纯的存文件,不参与业务,它里面除了视频,还有讲师头像、封面等其它业务。

我会考虑增加一张section_video表,表里用id, section_id, video, vod几个基本字段

0 回复 有任何疑惑可以回复我~
  • 提问者 慕神4535282 #1
    再追问一下,老师,因为考虑到file表不考与业务,所以就算是一对多的关系也可以考虑增加一张section_video表吗?(我一直死板地认为只有在多对多的关系下才考虑创建section_video表)
    2. 老师,你说section_video表里用id, section_id, video, vod几个基本字段,请问一下,section_video表里用id, section_id, file_id 这3个基本字段可以吗?这样是不是做到了不冗余。
    非常感谢老师的再次解答!!!
    回复 有任何疑惑可以回复我~ 2021-05-18 11:37:58
  • 甲蛙 回复 提问者 慕神4535282 #2
    一对多,一般是两张表,可以看成父子表,比如section和section_video就可以看成是父子表,用section_video.section_id来建立关系。多对多的关系,一般是三张表,比如后面会介绍权限管理,用户表、角色表、用户角色关联表。用户和角色是多对多关系,所以需要一个中间表把两者关联起来
    回复 有任何疑惑可以回复我~ 2021-05-20 14:59:50
  • 提问者 慕神4535282 回复 甲蛙 #3
    谢谢老师的指导,我明白你的意思。根据我的业务,section 和 file 是一对多的关系(一节下可以有多个视频,一个视频只能属于某一节),所以,根据我的理解和老师你2楼的回答,section和file是父子表,为此,我考虑用 file.section_id 来建立关系。但老师你前面说:“因为file是单纯的存文件,不参与业务,我会考虑增加一张section_video表”。所以我才追问,一句话总结就是:虽然section和file是父子表,没必要创建一个中间表,但基于file不参与业务的考虑,最终还是需要创建一张中间表section_video把section和file关联起来吗?
    还有,上面的第2点: 老师,你说section_video表里用id, section_id, video, vod几个基本字段,请问一下,section_video表里用id, section_id, file_id 这3个基本字段可以吗?这样是不是做到了不冗余。  也麻烦老师解答一下,非常感谢老师的再次解答!!!
    回复 有任何疑惑可以回复我~ 2021-05-20 16:04:11
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信