2016-11-07 7 views
0

私はroom bookingアプリケーションで作業しています。私はrails 5postgresを使用しています。モデルはこのようになります。部屋の予約アプリケーションに利用不可能な日付を保存するためのデータベースを設計

Hotelhas_manyroom_types

RoomTypesの表は、日が使用不可としてマークすることができ、この

RoomTypes 

id: 1 

name: "a specific room" 

no_of_rooms_of_this_type: 5 

ホテルの所有者のようになります。だから、私は個々のレコードとして利用不可能な日付を保存します。 オプション1

私は、使用できない日付ごとに別々のテーブルを作成すると思いますか?この

UnAvailabiltyTable 

id: 1 

room_id: 1 

unavailable_day: Date 

のようなケースI構造の部屋厥部屋は同じ種類:no_of_rooms_of_this_typeの多くの異なった部屋があり、それぞれが独自の利用可能性を持っているうようにした場合、私は同じroom_idで複数のレコードを作成endupます。それは大丈夫ですか??

オプション2(これはどのように効率的にわからない)

ストア各部屋

上jsonb列として取得できない値は、誰かがこのトピックにいくつかの光を当てますか?

+0

あなたは 'belongs_to'ルームに予約されたモデルを作成し、' start'日時と 'stop'日時とそれに必要なその他の情報があると考えましたか? – Okomikeruko

+0

@Okomikerukoその方法は予約された部屋のために働く..しかし、部屋の所有者が利用不可能な日付をマークできる方法を探しています – Abhilash

+0

これらの定期的な予定ですか? – Okomikeruko

答えて

0

私は非常に明確なモデルが表示されていないが、私はそれはこのようにすべきだと思います。

Hotel has_many rooms 
Room has_and_belongs_to_many bookings 
Booking has_and_belongs_to_many rooms 

room_typeは単にRoom属性になります。しかしこれはあなたのニーズに応じて変わる可能性があります。

start_dateおよびend_date(予約用)部屋と日付の検証を追加することができます。

このようにすると、type = 'whatever'の部屋と予約に参加し、部屋の新しい予約を作成することができます。私はもっ​​と複雑にする必要はないと思う。

+0

ご質問は非常に明確ではなく、あなたが提案した方法が予約された部屋でうまくいくので、間違った質問です。私は部屋の所有者がカレンダーで利用不可能な1つ以上の日付をマークするオプションを探しています。また、jqueryカレンダーなどを使用して、複数の日付を使用不可としてマークすることもできます。しかし、これらの日付をデータベースに保存するための堅実な方法を理解することはできません。 – Abhilash

+0

私はそれが同じように動作するはずだと思います。より良いものになると思う他の言葉で '予約'を変更するだけです。 –

関連する問題