"Room"、 "Reservation"などの標準的なテーブルがあります。すべてが現在リレーショナルデータベースにあります。ホテル予約システム:予約の一泊ごとに個別の価格を保管する方法は?
「予約」テーブルには、room_id、チェックイン日、チェックアウト日などの項目が格納されます。
予約すると、システムは「RoomPrice」テーブルをチェックし、予約された各晩の費用を(日付、占有率などに応じて)取得します。費用は異なる場合があります現在の価格に応じて毎晩。
明らかに予約が行われたとき、毎晩の価格は固定されます。事実の後に部屋の価格が更新されたとしても、価格の変更前に行われたように、その予約は合意した価格にとどまります。
私の質問は次のとおりです。予約を行ったときに、毎晩これらの個別料金を合意して保存する必要がありますか?
予約の毎晩、予約ID、価格、および日付を格納する別のテーブル 'PriceForNight'を使用することを検討しています。
これが私が見る唯一の問題はスケーラビリティです。平均予約期間が5泊の場合、 'PriceForNight'テーブルは 'Reservation'テーブルより約5倍速くなります。
'PriceForNight'データは、NoSQLデータベースなどに格納する方が適切でしょうか?
もう1つのオプションとして、「予約」テーブル行の1列にカンマ区切りの文字列として各夜の価格を格納することも考えられます。たとえば、「150.00,175.00,175.00,200.00,150.00」 5泊の予約。
実際の問題は1000倍も速くなっていた場合にのみ存在するかもしれませんが、私は正しいことをしたいので、コミュニティに手を差し伸べると思っていました。
ご了承ください。
とにかくこのテーブルの各夜間にエントリを作成しているので、このデータを予約テーブルに保存しないでください。 Rack RateとActual Rateの2つの列を追加できます。 –
@MarkKram「予約」テーブルには、宿泊数は1つ1つしかありません。 – Alex
Aaah、OK今理解しています –