Oop 设计面试-订车系统

Oop 设计面试-订车系统,oop,Oop,在软件开发面试中,汽车预订系统是一个非常流行的问题。 当我被问到这个问题时,我设计了以下ER结构/OOP结构: 汽车类别/表有汽车Id#、类型(紧凑型、标准型等)、品牌、型号 客户有客户Id等 预订是一个关联表,存储车辆Id、客户Id和车辆预订日期。为了简单起见,我们可以假设汽车只能在几天内预订 这是我挣扎的棘手部分- 如果客户1在7月27日预订了一辆Id为car 3的小型车,会发生什么情况。如果3号车在7月24日总计会发生什么。其他小型车也有售,但在7月24日至27日期间,它们都被抢走了。因此

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

汽车类别/表有汽车Id#、类型(紧凑型、标准型等)、品牌、型号 客户有客户Id等 预订是一个关联表,存储车辆Id、客户Id和车辆预订日期。为了简单起见,我们可以假设汽车只能在几天内预订

这是我挣扎的棘手部分- 如果客户1在7月27日预订了一辆Id为car 3的小型车,会发生什么情况。如果3号车在7月24日总计会发生什么。其他小型车也有售,但在7月24日至27日期间,它们都被抢走了。因此,当客户1在7月27日到达时,他最终没有汽车


我认为缺陷在于汽车和客户在预订表中的耦合方式。是否有更好的方法对这种关系以及常规用例进行建模,如查找特定日期的可用汽车、为该日期保留汽车等。

您可以向
汽车添加另一个名为
工作的
布尔
字段。
如果
Car 3
总计,则

  • Working
    设置为
    false
  • 预订
    中搜索它
  • 如果它在那里,则在
    car
    中搜索该类型的另一辆车
  • 如果找到,则将此车更换为
    预订中的另一辆车
  • 否则打电话给客户

然后问题来了-我们想在什么时候检查汽车是否工作?运行一个夜间脚本,并用其他等效的工作车辆替换所有已损坏/损坏的车辆?您选择使用实体关系模型。
汽车
客户
绝对是实体<代码>预订
肯定是
汽车
客户
之间的关系。一辆
汽车
是否全部/损坏肯定是该实体
汽车
属性
。这种设计符合实体-关系模型的原则,应该能够承受不同的用例。包括你的最后一个问题。