关闭

租车信息系统数据库设计(2)

发表于:2011-1-05 10:36

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:DBFocus(cnblogs)    来源:51Testing软件测试网采编

  前篇回顾

  租车信息系统数据库设计(1)中我们根据租车系统最基本的一些需求,设计出了如下表结构:

  有朋友看了这个结构图后问我为什么对于订单没有设计成主从表(即分为OrderHeader,OrderDetail)。

  订单的主从表设计在ERP系统中非常常见,在OrderHeader中存放客户信息,在OrderDetail中存放此客户本次订购的多种产品(每种产品若干数量),这种设计也更符合范式。我当初在进行设计时,首先想到的也是主从表设计,但思考了租车的需求场景,我最后选择了现在的这一设计。在我的电影院票务管理系统数据库设计(2)中对于类似问题进行过详细的分析,所以这里不再展开。但现在的结构也未必是最符合实际需求的,毕竟我是闭门造车,大家可自己思考提出更合理的设计方案。

  Order状态问题

  在上一篇中我们设计了6种Order状态,分别是:输入Entered,提交Booked,预约Reserved,使用中Inuse,交还Returned,取消Cancelled。对于正常Order的结束状态为Returned,但我在和曾经租过车的同事闲聊后,我觉得需要再加一个Closed状态作为Order结束状态。一般顾客在还车后,租车公司还会收取约600元的预授权,租车公司会检查该车在租用期是否有违章罚款,如若没有,这笔费用将在约两个月后打回顾客卡内。只有到这个时候这个Order才真正结束了(预授权的600元也需要记录在Table_Order表中,大家可以自行加一些列,本文为简化不列出了)。

  进一步的分析与设计

  第一篇中的设计不能满足现实需求的重要一点是,系统中没有记录顾客实际取车和还车的时间,这对于计算实际费用是至关重要的。当前的设计也无法回答门店库存车辆的变化情况。还有像车辆的维修信息,保险信息也都没有记录在系统中。

  我们把这些新的需求进行整理,接在第一篇的需求列表之后:

  8. 需记录顾客实际取车和还车的时间,用于计算实际的租车费用。

  9. 需记录门店库存车辆的变化情况,跟踪每一辆车的进出库信息。

  10. 记录每辆车的维修历史,包括维修的时间,费用,维修公司,维修合同号。

  11. 记录每辆车的保险历史,包括保险的时间,费用,保险公司,保险合同号。

  12. 注册顾客会有多个等级,对于不同等级会给予不同的折扣率(如:黄金用户有95折的优惠)。

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号