2016-07-29 30 views
0

我正在开发一所大学的数据库。如果我有主房间和空余房间,他们应该在不同的表格?

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

学院在特定建筑物内为特定专业设置了特定房间。

例如:计算机科学在#1楼,它有房间1001-1010。 商业在#2建筑,它有房间1001-1020。

在某些情况下(例如所有房间都在特定时间内忙碌等),那么其他2001-2003号房间将用于计算机科学。

我不知道我是否应该为主房间和另一个空房间创建桌子,或者他们应该放在一张桌子上。

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

part of ER diagram

+0

ER仅用于显示表格和字段并不准确。 – AL3MS

+1

你可以将所有的表放在同一个表中,并且有一个指定它的主或备用的字段。如果所有的房间都是一样的主要和备用房间,我认为它是最好的方法。 – guiguiblitz

+0

我必须打印课程,大厅和建筑物。对于主房间,根据主号码我可以得到正确的建筑物编号。但如果房间是空闲的,专业人员不在合适的建筑物内。所以我需要添加两个字段来指定主要或备用房间和另一个字段来指定建筑物编号以避免从关系中获得它。这种方式有许多重复的价值,它没有关系的好处。那么您是否可以完成您的答案如果他们在同一栋建筑物中,我如何打印认可建筑物?非常感谢你 – AL3MS

回答

0

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

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


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

领域:

“MajorID”

“名称”


“课程” 表(例如一些课程专业)

领域内:

“CourseID”

“名称”

“MajorID” - 外键,主表


“建筑” 表

Fields:

“BuildingID”

“名称”


“房间” 表

领域:

“RoomID”

“名称”

“能力“(座位数)

“BuildingID” - 外键建筑物表


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

领域:

“MajorID” - 外键的专业表

“RoomID” - 外键的表空间

“备用” - 你可以使用它作为一个布尔值,指示是否这是否是“备用”房间。然后,您的算法可以考虑到这一点,并且只有在课程相关专业没有常规房间时才选择这些房间。


“CourseRoomAllocation” - 这是您的分配算法将记录哪些房间实际分配给哪些课程,哪些时间的地方。这可能会变得更加复杂,但基本会是这样:

领域:

“RoomID” - 外键的表空间

“CourseID” - 外键课程表

“ BookingStart”开始使用的日期/时间

“的使用BookingEnd” 结束日期/时间


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

+0

这太好了。我将从你的想法开始,破解建筑与专业之间的关系。为“AvailableRooms”做一个新表,最后我将在“CourseRoomAllocation”中工作。非常感谢:D – AL3MS

+0

我有个疑问,为什么我们要创建“AvailableRooms”表?为什么不简单地在房间表中添加其字段? – AL3MS

+0

正如我在问题中所说:“我认为每个房间偶尔可以被多个专业使用,如果不是这样,那么可以使用稍微简单的设计。”我正是这个意思。如果您不需要这种灵活性,那么只需将这些字段添加到Rooms表。但是,如果可以的话,我个人总是设计未来 - 如果学生获得更多的学生或其他东西,您可能会发现大学会改变未来如何使用这些房间。那么你不必改变数据库来满足相当可预测的要求。但这完全取决于你。 – ADyson