7

車の予約システムは、ソフトウェア開発の面接で非常によく聞かれる質問です。これを求められたとき、私は次のER構造/OOP構造を設計しました:

車のクラス/テーブルには車の ID 番号、タイプ (コンパクト、スタンダードなど)、メーカー、モデル、顧客には顧客 ID 番号などがあります。簡単にするために、車は数日単位でしか予約できないと仮定できます。

ここで私が苦労したトリッキーな部分です - 顧客 1 が ID 3 の小型車を 7 月 27 日に予約するとどうなりますか。3 号車が 7 月 24 日に合計されたらどうなりますか。すべて取られます。したがって、顧客 1 が 7 月 27 日に到着したとき、彼は最終的に車を持っていません。

私が考える欠陥は、Car と Customer が Reservations テーブルで結合される方法にあります。この関係をモデル化するためのより良い方法はありますか?また、特定の日付に利用可能な車を見つけたり、その日付に予約したりするなどの通常のユースケースもあります.

4

1 に答える 1

2

と呼ばれる別のbooleanフィールドを追加できます。が合計された場合CarWorkingCar 3

  • に設定Workingfalseます。
  • で検索してReservationください。
  • そこにある場合は、そのタイプの別の車を で検索しCarます。
  • 見つかった場合は、この車を の他の車と交換しReservationます。
  • それ以外の場合は、顧客に電話してください。
于 2012-08-01T12:21:42.273 に答える