我正在为大学开发一个数据库。
系统应在考虑日期,时间和座位数后为每门课程选择一个房间。
学院为特定专业的特定建筑物设有特定的房间。
例如:计算机科学正在建设#1,它的房间是1001-1010。 商业位于2号楼,房间为1001-1020。
在某些情况下(例如所有房间在特定时间内都很忙......等),建筑物#2中的其他房间2001-2003将用于计算机科学。
我不确定是否应该为主房间创建一个桌子而另一个用于备用房间,或者它们应该在一个桌子中。
注意:稍后系统应打印课程名称,时间,房间号和建筑物。
答案 0 :(得分:0)
我认为你需要这样的东西。可能需要更多字段,但这些是解决基本问题的基本要素。
我假设每个房间偶尔可以由多个专业使用,如果不是这样,你可以使用稍微简单的设计。
"主要"表(例如计算机科学,商业)
字段:
" MajorID"
"名称"
"当然"表格(例如专业内的一些课程)
字段:
" CourseID"
"名称"
" MajorID" - Major表的外键
"建筑"表
字段:
" BuildingID"
"名称"
"房间"表
字段:
" RoomID"
"名称"
"能力" (座位数)
" BuildingID" - 建筑物表的外键
" AvailableRooms"表。这将定义在为课程分配空间时哪些房间可用于哪些专业。不要挂断每个专业只使用特定建筑的想法。正如你所指出的,实际上他们并没有,因为他们在其他建筑物中有额外的房间。
字段:
" MajorID" - Majors表的外键
" RoomID" - Room表的外键
"备用" - 您可以将此作为布尔值来表示这是否是"备用"房间与否。然后,您的算法可以考虑到这一点,如果没有常规房间可用于与课程相关的专业,则只选择这些房间。
" CourseRoomAllocation" - 这是您的分配算法将记录哪些房间实际分配到哪些课程,在哪些时间。这可能会变得更复杂,但基础知识将是这样的:
字段:
" RoomID" - Room表的外键
" CourseID" - 课程表的外键
" BookingStart"开始日期/使用时间
" BookingEnd"结束日期/使用时间
我认为现实将不可避免地比这更复杂,但我认为这应该足以让你开始。