0

ホテルの部屋を予約できる曜日を設定する Web フォームがあります。

私の疑問: それをデータベースに保存する最良の方法は何ですか?

曜日ごとに1つずつ、7つのブール列を作成することを考えました。

EDIT : 私のフォームはバックエンドで、ホテルのオーナー向けです。奇妙に聞こえるかもしれませんが、部屋が空いている曜日を設定したいと考えています。

4

3 に答える 3

1

以下のような構造を調べます。複雑に見えるかもしれませんが、正規化されており、簡単にスケールアップできます。

Rooms
--------------------------
id
number
type (Suite, Standard, Twin)
floor

Room_Bookings
--------------------------
room_id
reservation_id
type (customer, hotel)
date

Reservations
--------------------------
id
customer_id
total_price
paid (yes/no)
created_by (staff member?)
number_of_nights

Room_Available_Days_Of_Week
--------------------------
room_id
day_id (0 = sunday, 1 = monday etc etc)
  • 部屋-ホテルの各部屋の行。タイプはSuite、Standard、Twinなどになります(このためのRoom_Typesテーブルがあり、IDを格納できます)
  • Room_Bookings-部屋が予約された各日付の行。これは予約テーブルと部屋テーブルにリンクします。顧客またはホテルであるtype可能性があります。部屋が滞在のために予約されたときの顧客。ホテルは、特定の日に部屋をブロックするために使用される可能性があります。たとえば、部屋にメンテナンス作業がある場合。
  • 予約-各予約の列。予約とは、ホテルでの滞在を意味し、さまざまな宿泊日数になる可能性があります。
  • Room_Available_Days_Of_Week-このテーブルは、平日に基づいて空室状況を指定する要件に対応します。利用可能な各部屋と平日の行。

たとえば、3泊の滞在は、の1行Reservationsとの3行で構成されRoom_Bookingsます。

空室状況については、予約されておらず、必要な平日に一致Room_Bookingsする行がテーブルにある場合に、部屋が空室になります。Room_Available_Days_Of_Week

于 2012-12-05T10:51:58.477 に答える
1

予約をテーブルに保存し、予約ごとに 1 つの行を、列: visitor_id、部屋番号、開始日と終了日で保存します。次に、クエリを実行して (部屋ごとまたは全体で) 利用可能な日付を確認します。

于 2012-12-05T10:16:23.700 に答える
0

部屋ごとに別のテーブル (つまり、部屋ごとに 1 つの行) を作成し、次に部屋/日付ごとに別の別のテーブルを作成します。部屋が予約されている場合は、2番目のテーブルに挿入します。部屋が使用されているかどうかを確認するには、最初のテーブルから選択し、日付を指定して 2 番目のテーブルに左結合します。2 番目のテーブルの列が null の場合、その部屋は空いています (つまり、その部屋 / 日付にはまだ何も予約されていません)。

于 2012-12-05T10:16:09.567 に答える