我认为你需要这样的事情。可能需要更多的字段,但这些是解决您的基本问题的基本要素。
我假定每个房间偶尔可以被多个专业使用,如果这不是真的,你可以使用一个稍微简单的设计。
“主要” 表(例如计算机科学,商业)
领域:
“MajorID”
“名称”
“课程” 表(例如一些课程专业)
领域内:
“CourseID”
“名称”
“MajorID” - 外键,主表
“建筑” 表
Fields:
“BuildingID”
“名称”
“房间” 表
领域:
“RoomID”
“名称”
“能力“(座位数)
“BuildingID” - 外键建筑物表
“AvailableRooms” 表。这将定义哪些房间可用于为课程分配空间的哪些专业。不要挂在每个专业仅使用特定建筑的想法上。正如你所指出的那样,实际上他们没有,因为他们在其他建筑物中有额外的房间。
领域:
“MajorID” - 外键的专业表
“RoomID” - 外键的表空间
“备用” - 你可以使用它作为一个布尔值,指示是否这是否是“备用”房间。然后,您的算法可以考虑到这一点,并且只有在课程相关专业没有常规房间时才选择这些房间。
“CourseRoomAllocation” - 这是您的分配算法将记录哪些房间实际分配给哪些课程,哪些时间的地方。这可能会变得更加复杂,但基本会是这样:
领域:
“RoomID” - 外键的表空间
“CourseID” - 外键课程表
“ BookingStart”开始使用的日期/时间
“的使用BookingEnd” 结束日期/时间
我想现实不可避免会比这更复杂一些,但我认为这应该足以让你开始。
ER仅用于显示表格和字段并不准确。 – AL3MS
你可以将所有的表放在同一个表中,并且有一个指定它的主或备用的字段。如果所有的房间都是一样的主要和备用房间,我认为它是最好的方法。 – guiguiblitz
我必须打印课程,大厅和建筑物。对于主房间,根据主号码我可以得到正确的建筑物编号。但如果房间是空闲的,专业人员不在合适的建筑物内。所以我需要添加两个字段来指定主要或备用房间和另一个字段来指定建筑物编号以避免从关系中获得它。这种方式有许多重复的价值,它没有关系的好处。那么您是否可以完成您的答案如果他们在同一栋建筑物中,我如何打印认可建筑物?非常感谢你 – AL3MS