酒店预订系统数据库架构

时间:2010-03-17 11:09:22

标签: mysql schema system

我即将开发一个在线酒店预订系统...使用php和mysql ...我对我当前的数据库架构和业务逻辑有所怀疑,以获得两个特定日期之间房间免费的酒店。 ..

有没有人知道某种教程我可以了解酒店预订架构和应该在系统中使用的业务逻辑......?

感谢您的建议......

编辑:    我已经弄明白了大部分的逻辑......我不清楚的是以下几点......

  1. 如果用户在两个特定日期之间选择特定酒店中的多个房间,我如何在以下预订表中表示...?

    表:预订

     Field 1 : reservation_id
     Field 2 : room_id
     Field 3 : no. of Rooms
     Field 4 : check-in date
     Field 5 : check-out date
     Field 6 : Customer id
    
  2. 如何根据预订表和以下房间表查看两个日期之间的房间??

    表:房间

         Field 1 : hotel_id
         Field 2 : room_id
         Field 3 : total_num_rooms
    
  3. 注意:数据库包含多个酒店...因此,用户可以选择一个城市,并在两个特定日期之间查找该地区酒店的房间...

    另外说如果酒店中有10个特定类型的房间号码,我只需要显示在该特定时间段内免费的房间数量.....

2 个答案:

答案 0 :(得分:5)

作为一般思想,应用分而治之。总是

例如,为什么您认为特定客户应该能够在特定时间段内拥有“房间数量”?例如,如果我出差并让我的家人在几天后跟着我,那该怎么办?现在,在给定的时间跨度内,房间数量不再是恒定的。

那真的不重要吗?没错,你可以为同一个客户添加另一个条目。但话说回来,你可以在第一时间做到这一点并简化你的逻辑,说客户一次只能有一个房间,但是可以有一些行在给定客户的时间跨度上创建重叠。

另外,请务必将ReservationReservationRequest分开。后者由我认为的一组预订组成 - 因为我希望我和我的家人有这个空间,并且两个标准必须匹配。

只是一些想法。请注意,这是象牙塔的方法,它可能会导致大量过度的解决方案。在RealWorld(TM)中,坚持Marcs的建议:分析实际的客户需求。如果处理1%的请求会使开发时间增加200%,那么他就不会喜欢(或需要)它,反之亦然。

答案 1 :(得分:1)

没有一种完美的方式来代表酒店预订系统。

尝试与您的客户或酒店工作人员交谈,了解他们现在正在做什么,并以此为基础建立您的系统。

我猜:

A Room has a RoomType
A Customer can Book 1..n Room(s)
A RoomType has a name and a price

......等等。

如果您只是使用教程,最终可能会创建一个不符合可能用户要求的系统。因此,与这些未来的最终用户交谈,找出业务逻辑并开始编码:)