2009-04-01 12 views
1

は、参照してください。すべての部屋は同じ価格です。私は私の友人の非常に小さなリゾート地のためのウェブサイトを開発しています

私は与えられていないの状況を確認するには、コードまたはロジックが必要になります。チェックインおよびチェックアウトの日程を指定してください。

誰かが予約を行う場合は、予約テーブルに行くの詳細は以下のとおりです。

  • 顧客名
  • メール
  • チェックイン日
  • チェックアウト日
  • をbooking_id
  • 番号。部屋

の助けを借りてください。これはPayPalも統合するため非常に重要なので、混乱はないはずです...

答えて

2

すべての部屋が24時間いつでも利用できる場合は、予約はstart_time(タイムスタンプ)とend_time(タイムスタンプ)ではなく、日付です。

標準予約が可能性の高い特定の開始時刻(18時〜)と終了(〜11時)を持っていますが、早い到着または後期のチェックアウトを提供するために、具体的にしたいことがあります。

  1. ユーザーピックチェックイン日とチェックアウト日:

    これは、私は、ユーザーをいただきたいの論理です。

  2. あなたのプログラムは、チェックイン日の午後6時とチェックアウト日の午前11時を取得し、現在の予約に基づいてその時間内に予約されていない部屋を選択します。 (リターン・ルーム)

これはかなり単純なアプローチのように聞こえるが、あなたが部屋の間の予約を分割、メイド時間を考慮する必要があるかもしれません、保留部屋など

0

あなたに手順を必要とします利用可能な部屋の数を決定します。部屋の数が少ないため、最も単純な答えは、各部屋をループになると、期間中の可用性をチェックします。これは、予約期間中に特定の部屋のために存在している場合、それが利用可能ではありません、です。

部屋間の予約を分割することを検討したい場合は、難しくなりますが、期間中の各部屋の空き状況を確認してから、結果を集計する必要があります。

1

私はあなたがすべてのページの更新の可用性をチェックしている場合、私はどのように多くの空き部屋現時点で有効になっているどのように多くの予約つかんによって計算したいと思います:これはあなたを与えるだろう

select sum(number_of_rooms) from reservations where 
    check_in_date <= now() and 
    check_out_date >= now() 

あなたの現在の部屋は占有されています。単にハードコードされた「部屋総」値からこの値を差し引きます。

データベースを正規化するには、リンクテーブルを持つ顧客テーブルと個々のルームテーブルを予約テーブルに登録することが役立ちます。しかし私はあなたの制約を知らない。

+0

また、room_idが予約テーブルに存在しない客室番号の合計を選択することもできます。これはまた、利用可能な部屋の合計を返します。 – jerebear

関連する問題