7

汽车预订系统是软件开发面试中一个非常流行的问题。当我被问到这个问题时,我设计了以下 ER 结构/OOP 结构:

Car class/table 有 Car Id#、Type(Compact、Standard 等)、Make、Model Customer 有 Customer Id# 等 Reservation 是一个关联表,用于存储 Car Id#、Customer Id# 和预订汽车的日期。为简单起见,我们可以假设汽车只能在几天内预订。

这是我陷入困境的棘手部分 - 当客户 1 在 7 月 27 日预订一辆具有 Id Car 3 的紧凑型汽车时会发生什么。如果 Car 3 在 7 月 24 日总计会发生什么情况。其他紧凑型汽车可用,但在 7 月 24 日至 27 日之间他们都被拿走了。因此,当客户 1 于 7 月 27 日到达时,他最终没有车。

我认为缺陷在于 Car 和 Customer 在 Reservations 表中的耦合方式。有没有更好的方法来模拟这种关系以及常规用例,例如在特定日期找到可用的汽车,为该日期保留它等。

4

1 回答 1

2

您可以将另一个boolean字段添加到Car被调用Working。如果Car 3是总计那么

  • 设置Workingfalse.
  • 中搜索它Reservation
  • 如果它在那里,然后在 中搜索该类型的另一辆车Car
  • 如果找到然后用另一辆车替换这辆车Reservation
  • 否则打电话给客户。
于 2012-08-01T12:21:42.273 回答