最近、架空のWebベースの予約システムに関するインタビューの質問と、重複を最小限に抑え、柔軟性を最大化するためにデータベーススキーマを設計する方法について質問されました。
ユースケースは、管理者がプロパティの可用性をシステムに入力することです。複数の期間が設定されている可能性があります。たとえば、2009年4月1日から2009年4月14日まで、および2009年7月3日から2009年7月21日までです。
その場合、ユーザーは、同等またはそれより短い期間で利用可能になった期間にのみ予約を行うことができます。
この情報をデータベースにどのように保存しますか?
次のような単純な(本当に単純化された)ものを使用しますか?
AVAILABILITY(property_id, start_date, end_date);
BOOKING(property_id, start_date, end_date);
次に、予約された期間が空白になっている可用性のカレンダーを表示するWebページを簡単に作成できますか。このデータベーススキーマからレポートを作成するのは簡単でしょうか?見た目と同じくらい簡単ですか?