如果我有主房间和空余房间应该在不同的桌子上吗?

时间:2016-07-29 13:18:30

标签: sql asp.net database

我正在为大学开发一个数据库。

系统应在考虑日期,时间和座位数后为每门课程选择一个房间。

学院为特定专业的特定建筑物设有特定的房间。

例如:计算机科学正在建设#1,它的房间是1001-1010。  商业位于2号楼,房间为1001-1020。

在某些情况下(例如所有房间在特定时间内都很忙......等),建筑物#2中的其他房间2001-2003将用于计算机科学。

我不确定是否应该为主房间创建一个桌子而另一个用于备用房间,或者它们应该在一个桌子中。

注意:稍后系统应打印课程名称,时间,房间号和建筑物。

part of ER diagram

1 个答案:

答案 0 :(得分:0)

我认为你需要这样的东西。可能需要更多字段,但这些是解决基本问题的基本要素。

我假设每个房间偶尔可以由多个专业使用,如果不是这样,你可以使用稍微简单的设计。

"主要"表(例如计算机科学,商业)

字段:

" MajorID"

"名称"

"当然"表格(例如专业内的一些课程)

字段:

" CourseID"

"名称"

" MajorID" - Major表的外键

"建筑"表

字段:

" BuildingID"

"名称"

"房间"表

字段:

" RoomID"

"名称"

"能力" (座位数)

" BuildingID" - 建筑物表的外键

" AvailableRooms"表。这将定义在为课程分配空间时哪些房间可用于哪些专业。不要挂断每个专业只使用特定建筑的想法。正如你所指出的,实际上他们并没有,因为他们在其他建筑物中有额外的房间。

字段:

" MajorID" - Majors表的外键

" RoomID" - Room表的外键

"备用" - 您可以将此作为布尔值来表示这是否是"备用"房间与否。然后,您的算法可以考虑到这一点,如果没有常规房间可用于与课程相关的专业,则只选择这些房间。

" CourseRoomAllocation" - 这是您的分配算法将记录哪些房间实际分配到哪些课程,在哪些时间。这可能会变得更复杂,但基础知识将是这样的:

字段:

" RoomID" - Room表的外键

" CourseID" - 课程表的外键

" BookingStart"开始日期/使用时间

" BookingEnd"结束日期/使用时间

我认为现实将不可避免地比这更复杂,但我认为这应该足以让你开始。