我需要制作一个ER图(并将其映射到关系数据库模型)以用于以下实际部分:
我不确定如何以这种方式构建我的ER-Diagram(以及我的关系数据库模型),讲座不可能重叠(例如,讲座1在周一下午2点到4点在1号房间进行。第2讲周一下午2:30至5:00,也在1号房间。)
将日期或开始/结束时间设置为关键属性并不是真正有用(事实上,它会带来很多限制)。我唯一想到的是定义一些"最小值"讲座可以持续多长时间(例如1小时,所以如果我说Lectue 1在1号房间下午2点出现,则自动暗示1号房间从下午2点到下午3点拍摄)。
有什么想法吗?谢谢你
答案 0 :(得分:1)
如果这是关于如何使用关系模型对特定时间可以为特定房间分配多少个讲座的约束的学术练习,那么您希望有一个带有子日期表的房间表和时间(如果这是你的情况,以一小时为增量)。此子表将具有课程表的可选外键,表示该课程当时保存在该位置。像这样:
CLASSROOM -|----IO< TIMESLOT >O-----O|- COURSE
因为地点/时间记录指向当时和那里发生的(零或)一门课程,所以讲座不可能相互冲突。
但是,这对于实际用途来说是一个糟糕的设计。
相反,日期/时间范围应记录为起点和终点,并且可以使用SELECT查询找到重叠,如我对这两个问题的回答所示:Reference 1 Reference 2