2010-03-17 107 views
2

我即將開發一個在線酒店預訂系統......使用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 
    

注:DB包含一個以上的酒店......所以它就像一個用戶可以選擇一個城市,並期待在酒店客房提供兩個之間的區域特定的日期...

也說如果有一個特定類型的房間在一個酒店,我只需要顯示在特定時間段內免費的房間數量的10個數字.....

+2

如果這是家庭作業,想到一個模式的。想想酒店如何工作。如果不是,請諮詢您的客戶。他們將自己的業務邏輯 – Midhat 2010-03-17 11:19:40

回答

1

沒有一種像酒店預訂系統那樣的完美方式。

嘗試與您的客戶或在酒店工作的人交談,瞭解他們現在在做什麼,並將您的系統建立在此基礎之上。

我猜:

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

...等等。

如果您只是使用教程,最終可能會創建一個不符合可能用戶要求的系統。因此,與這些未來的終端用戶交談,找出業務邏輯並開始編碼:)

+0

@marcgg的最佳法官:請看看編輯... – SpikETidE 2010-03-17 11:49:28

5

作爲一般思想,應用分而治之。總是。

例如,您爲什麼認爲某個特定客戶應該能夠將某個時間段的「房間數量」關聯起來?例如,如果我出差,並且幾天後讓我的家人跟隨我,現在,在給定的時間範圍內,房間的數量不再是常數。

這並不重要嗎?誠然,您可以爲同一個客戶添加另一個條目。但是再一次,你可以首先做到這一點,並簡化邏輯,說客戶一次只能有一個房間,但可能會有一些行在給定客戶的時間跨度上產生重疊。

此外,還要確保你分開ReservationReservationRequest。後者由我認爲的一組預訂組成 - 因爲我希望爲我和我的家人提供這個空間,而且兩個標準都必須匹配。

只是一些想法。請注意,這是象牙塔式的方法,它可能導致大規模的過度解決方案。在RealWorld(TM)中,堅持Marcs的建議:分析實際的客戶需求。如果處理1%的請求將開發時間增加200%,他不會喜歡(或需要)它,反之亦然。

+0

您的建議是有效的..幸運的是那些不要求.... – SpikETidE 2010-03-17 12:34:58

+0

因此,這是家庭作業嗎?否則,你爲什麼要使用該數據結構? – mnemosyn 2010-03-17 13:02:18

+0

這不是功課...我只是不知道有關的業務邏輯我制定了..所以我需要一些更好的建議... – SpikETidE 2010-03-18 04:12:03