Oop 设计面试-订车系统
在软件开发面试中,汽车预订系统是一个非常流行的问题。 当我被问到这个问题时,我设计了以下ER结构/OOP结构: 汽车类别/表有汽车Id#、类型(紧凑型、标准型等)、品牌、型号 客户有客户Id等 预订是一个关联表,存储车辆Id、客户Id和车辆预订日期。为了简单起见,我们可以假设汽车只能在几天内预订 这是我挣扎的棘手部分- 如果客户1在7月27日预订了一辆Id为car 3的小型车,会发生什么情况。如果3号车在7月24日总计会发生什么。其他小型车也有售,但在7月24日至27日期间,它们都被抢走了。因此,当客户1在7月27日到达时,他最终没有汽车Oop 设计面试-订车系统,oop,Oop,在软件开发面试中,汽车预订系统是一个非常流行的问题。 当我被问到这个问题时,我设计了以下ER结构/OOP结构: 汽车类别/表有汽车Id#、类型(紧凑型、标准型等)、品牌、型号 客户有客户Id等 预订是一个关联表,存储车辆Id、客户Id和车辆预订日期。为了简单起见,我们可以假设汽车只能在几天内预订 这是我挣扎的棘手部分- 如果客户1在7月27日预订了一辆Id为car 3的小型车,会发生什么情况。如果3号车在7月24日总计会发生什么。其他小型车也有售,但在7月24日至27日期间,它们都被抢走了。因此
我认为缺陷在于汽车和客户在预订表中的耦合方式。是否有更好的方法对这种关系以及常规用例进行建模,如查找特定日期的可用汽车、为该日期保留汽车等。您可以向
汽车添加另一个名为工作的布尔字段。
如果Car 3
总计,则
- 将
Working
设置为false
- 在
预订
中搜索它
- 如果它在那里,则在
car
中搜索该类型的另一辆车
- 如果找到,则将此车更换为
预订中的另一辆车
- 否则打电话给客户
然后问题来了-我们想在什么时候检查汽车是否工作?运行一个夜间脚本,并用其他等效的工作车辆替换所有已损坏/损坏的车辆?您选择使用实体关系模型。汽车
和客户
绝对是实体<代码>预订
肯定是汽车
和客户
之间的关系。一辆汽车
是否全部/损坏肯定是该实体汽车
的属性
。这种设计符合实体-关系模型的原则,应该能够承受不同的用例。包括你的最后一个问题。