我不得不为预订安排几个资源。下面是我的逻辑
示例:
我不得不安排Delux(2)和Classic(1)房间一年。所以我插入了1095条记录(730+365-每个资源每天一行)。
数据库:表(SID,SDATE,ROOMID,STATUS)
逻辑是正确的吗?
发布于 2014-04-28 15:01:51
为什么不能使用START_DATE和END_DATE代替SDATE来存储时间间隔呢?
对于特定的一天,您可以询问间隔的相同状态,即该间隔的START_DATE和END_DATE之间的日期。
更好的是,只跟踪预定的时间间隔,其余的都是免费的。因此,除了已经预订的房间,所有房间都是免费的。
发布于 2014-04-29 04:20:36
如果我没理解错的话,你有一个可变的资源池,你会以某种方式收到它。假设这是从日期A到日期B的类型为T的房间X的形式,我会将其存储到一个表" availability“中,这样您就可以随时查看每天的总体可用性。如果您将其与StanislavL answer结合使用,您将拥有两个表,一个用于可用房间,另一个用于预订:
availability(availability_id,room_id,date_from,date_to)
booking(booking_id,room_id,date_from,date_to)
room(room_id,type,name,address,..)每天可用房间的数量是通过从可用房间中减去via NOT IN子句预订的房间来获得的。此外,当您需要预订房间时,如果确实可能的话,您可以查看可用性表。
https://stackoverflow.com/questions/23333481
复制相似问题