車の予約システムは、ソフトウェア開発の面接で非常によく聞かれる質問です。これを求められたとき、私は次のER構造/OOP構造を設計しました:
車のクラス/テーブルには車の ID 番号、タイプ (コンパクト、スタンダードなど)、メーカー、モデル、顧客には顧客 ID 番号などがあります。簡単にするために、車は数日単位でしか予約できないと仮定できます。
ここで私が苦労したトリッキーな部分です - 顧客 1 が ID 3 の小型車を 7 月 27 日に予約するとどうなりますか。3 号車が 7 月 24 日に合計されたらどうなりますか。すべて取られます。したがって、顧客 1 が 7 月 27 日に到着したとき、彼は最終的に車を持っていません。
私が考える欠陥は、Car と Customer が Reservations テーブルで結合される方法にあります。この関係をモデル化するためのより良い方法はありますか?また、特定の日付に利用可能な車を見つけたり、その日付に予約したりするなどの通常のユースケースもあります.