ユーザーが指定した日付範囲が利用可能かどうかを確認できる必要があります。booked
開始日、終了日、およびその期間に予約された部屋の数を保持するデータベースで呼び出されるテーブルがあります。
私のbooked
テーブルが次のようになっているとしましょう:
room_id | start | end | amount_of_rooms_booked
1 | 2012-12-12 | 2012-12-15 | 2
1 | 2012-12-13 | 2012-12-16 | 3
1 | 2012-12-18 | 2012-12-19 | 1
1 日に合計 8 部屋が利用可能で、ユーザーが から の間にroom_id
この部屋を要求した場合、1日あたりの予約済み部屋数が 8 を超えないかどうかを確認するクエリを実行できますか。2012-12-10
2012-12-20
SUM
これを行う別の方法は、毎日を個別に保存し、booked
代わりに次のようなテーブルを作成することです。
room_id | start | amount_of_rooms_booked
1 | 2012-12-12 | 2
1 | 2012-12-13 | 5
1 | 2012-12-14 | 5
1 | 2012-12-15 | 3
1 | 2012-12-18 | 1
その方法はデータベースでより多くのスペースを使用しますが、おそらくより簡単です。どちらをすればよいですか?そして、最初のアイデアがあれば、どのようにクエリを実行しますか? 私がやろうとしていることを達成するための他のより良い方法はありますか?