前篇回顾

租车信息系统数据库设计(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折的优惠)。

对于需求8,我们要在原先的Table_Order中加入新的列,加入Order_ActualStartDate,Order_ActualEndDate来记录实际取车和还车时间,还要加入Order_ActualPrice来记录实际产生的租车费用。

对于需求9,我们可以加入一张Table_StoreTransaction表来记录车辆的进出库流水。表中的字段需包括:发生进出库的车辆ID(Car_ID),表示是进库还是出库的标签(StoreTransaction_InOutFlag),进出库的时间(StoreTransaction_Date)。Table_Car与Table_StoreTransaction为一对多关系。

对于需求10,我们要加入一张Table_RepairHistory表,Table_Car与Table_RepairHistory为一对多关系。间接的还会引入一张Table_RepairStation表,来记录维修点信息。Table_RepairStation与Table_RepairHistory之间也为一对多关系。

对于需求11,加入一张Table_InsuranceHistory表,Table_Car与Table_InsuranceHistory为一对多关系。间接引入Table_InsuranceCompany表,记录保险公司信息。Table_InsuranceCompany与Table_InsuranceHistory之间为一对多关系。

对于需求12,加入Table_Class表,表中会存放折扣信息(Class_Discount)。Table_Class与Table_Customer之间为一对多关系。

新的表关系图如下:

上图中用红色框标出了本次增加或改变的表和字段。

其中需要注意的是Table_StoreTransaction表中用黄色框标出的StoreTransaction_ReferenceID字段。这个字段存放某次出入库对应的Order_ID,这样就能知道StoreTransaction与Order的对应关系了。但对于车辆买入,或车辆报废,送修造成的出入库,这一字段暂时还没有对应的数据,这将在下一篇中讨论。

下篇预告

到现在为止租车系统的基本需求已经满足了,但还有不少问题值得思考。

1. 出入库管理还能丰富,车辆买入,车辆报废,送修,还有不同门店之间的车辆拆借(如门店A向门店B临时借用某辆车),如何更好的记录这些StoreTransaction信息?

2. 顾客对于租车费用的支付信息如何记录,顾客可以通过预先充值后消费的方式来支付(这也是区分会员级别的关键),又该如何支持?

3. 我们在第一篇中暂时没考虑“送车上门和上门取车”服务,要支持这一功能,我们对数据库结构要做些什么改动?

转载于:https://www.cnblogs.com/DBFocus/archive/2010/11/14/1877046.html

租车信息系统数据库设计(2)相关推荐

  1. 租车信息系统数据库设计(3)

    前篇回顾 在租车信息系统数据库设计(1)与租车信息系统数据库设计(2)中我们列出了租车信息系统的12条需求,并相应做了数据库设计,最后得到的表关系图如下: 在租车信息系统数据库设计(2)的最后提出了3 ...

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

    最近在看<Database modeling & design:logical design>一书,其中有一道练习题是对简单租车系统进行数据库逻辑设计并画出ER图. 这道题给我挺多 ...

  3. java租车系统维熵科技_维熵租车系统数据库

    维熵租车系统数据库是一款在线租车服务系统的数据库,维熵租车系统数据库可为用户提供商务租车.接送机.旅游租车.企业租车.自驾租车.婚庆用车等自助租车服务,可以满足企业日常业务管理功能,还可以提高接单能力 ...

  4. android租车管理系统,毕业设计(论文)-基于Android的学校租车管理系统的设计与开发.doc...

    盐城师范学院毕业设计 盐 城 师 范 学 院 毕业设计 基于Android的学校租车管理系统 的设计与开发 学生姓名 学 院 信息工程学院 专 业 数字媒体技术 班 级 12(1) 学 号 指导教师 ...

  5. 基于JSP的网上在线租车系统平台设计与实现

    目录 第一章 系统概述 1 1.1背景 1 1.2发展现状 1 第二章 需求分析 2 2.1 功能需求 2 2.2 数据需求 3 第三章 系统设计 5 3.1系统结构 5 3.2 数据库设计 5 3. ...

  6. App设计灵感之十二组精美的租车类App设计案例

    对于租车 App 来说,需要展示给用户的包括车辆基本信息.价格以及使用条件等,如何让用户可以更快的找到这些信息,这十二组设计案例也许会为你带来灵感. ① Car Rental App Design C ...

  7. 租车 网站 php,基于PHP的网上租车租赁网站设计与实现开题报告

    题目:网上汽车租赁系统的设计与实践 一.课题的目的及意义(含国内外的研究现状分析): 随着社会经济的迅速发展和科学技术的全面进步,电子商务的飞速发展,以计算机与互联网技术为基础的应用正处于蓬勃发展的时 ...

  8. php网站开发开题报告,基于PHP的网上租车租赁网站设计与实现开题报告

    题目:网上汽车租赁系统的设计与实践 一.课题的目的及意义(含国内外的研究现状分析): 随着社会经济的迅速发展和科学技术的全面进步,电子商务的飞速发展,以计算机与互联网技术为基础的应用正处于蓬勃发展的时 ...

  9. 基于PHP的网上租车租赁网站设计与实现

    目 录 中文摘要----------------------------------I 1.引言-------------------------------------1 1.1背景介绍------ ...

最新文章

  1. SQL UPDATE SET FROM用法
  2. LeetCode Validate Binary Search Tree(dfs)
  3. 如何改造UE4用于赛璐璐3D卡渲?这里有一份日本大厂的实操分享
  4. 如何关闭linux系统中的覆盖输出重定向()功能
  5. java 如何实现对象克隆_Java对象克隆
  6. java从控制台读取数据_Java不同版本从控制台读取数据方法及优缺点分析
  7. 2014中国软件开发者调查
  8. Spring: Bean 注册 - BeanDefinitionRegistry
  9. tomcat没有编译重新编写的代码
  10. 关于PostThreadMessage以及创建线程消息队列
  11. Atitit.播放系统规划新版本 and 最近版本回顾 v3  pbf.doc
  12. JavaScript快速入门(一)——JavaScript概览
  13. 三菱服务器显示rb是什么故障,​三菱伺服驱动器常见报警代码及解决办法
  14. 海南旅游自由行攻略怎么玩
  15. 【云计算OpenStack-OpenStack Queens版本-遇错】基于OpenStack的云计算环境搭建
  16. 设计一个自然数类,该类的对象能表示一个自然数
  17. android 平板z97,生命在于折腾 iGame Z97也能玩Android
  18. 假期小记 | 要一心一意搞事业
  19. 博导谈寒门子弟上大学:要相信双一流大学没有“废物”!
  20. MNIST数据集学习

热门文章

  1. 邮箱服务器退回,发出去的邮件为什么被退回?
  2. 动手学深度学习Pytorch Task01
  3. 用python对单一微博文档进行分词——jieba分词(加保留词和停用词)
  4. 为什么企业越来越重视数据分析与挖掘?
  5. 文本分类器,可自由加载BERT、Bert-wwm、Roberta、ALBert以及ERNIE1.0
  6. java pdf 文字_Java给pdf文件添加文字等信息
  7. java jodd_Jodd :一款优雅的 Java 工具集
  8. E3 tree 1.6在Firefox下显示问题的修复
  9. 在Mybatis的collection标签中获取以,分隔的id字符串
  10. JavaScript变量复制