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

发表于:2011-1-11 10:17

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

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

  前篇回顾

  从租车信息系统数据库设计(1)租车信息系统数据库设计(4)我们完成了一个简单的租车信息系统的数据库设计。

  从功能上来讲还有很多可以扩展的方面,如权限管理、发票管理等等,本文不将展开。大家可以对这些需求进行设想,设计相应的表、字段和关联,并融合到整体设计中。

  本篇是本系列的最后一篇,我们将利用先前设计的数据库结构来写一些查询,完成一些业务需求,同时也反过来审视先前的设计。

  获取需要催促还车的订单

  我们的业务人员每天都要获取超出预订期限未还车的订单。对于这些订单,业务人员需要一一电话客户。

  那就让我们来帮助业务人员写这个查询吧!

select 
 RentalOrder.Order_ID
from
 Table_Order RentalOrder
where
 RentalOrder.Order_BookEndDate < GETDATE()
 and
 OrderStatus_ID = (select
      OrderStatus.OrderStatus_ID
     from
      Table_OrderStatus OrderStatus
     where
      OrderStatus.OrderStatus_Name = 'Inuse')&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

  这个查询把订单预订终止日期比当前时间早,但订单状态还是‘Inuse’的订单好找了出来(订单状态种类请参见租车信息系统数据库设计(2))。

  注:1. 此查询中有一个子查询,大家可以直接使用查出来的OrderStatus_ID代替之,这样对性能有好处。此处是为了增加可读性。

  2. 此查询仅输出了Order_ID,大家可根据需要连接相应的表,输出需要的字段。

  顾客预订用车

  当某顾客决定要租车时,他会在租车网站上选定某型号的车、哪个门店、某个时间段,并点击预订。

  此时系统要查找指定门店的该车型车辆在相应时间是否有档期,我们分步骤来写这个查询。

  查询的输入为:

1. 车型ID:@CarCategory_ID
2. 门店ID:@Store_ID
3. 租用起始日期:@StartDate
4. 租用结束日期:@EndDate

  查询的输出为:

  符合条件的车辆ID:Car_ID

--1 选出指定车型(Category),指定门店(Store),且车辆状态为Ready和Inuse的车辆
select 
 Car_ID
into
 #CandidateCars1
from
 Table_Car
where
 CarCategory_ID = @CarCategory_ID
 and
 Store_ID = @Store_ID
 and
 CarStatus_ID in (select
      CarStatus_ID
     from
      Table_CarStatus
     where
      CarStatus_Name in ('Ready', 'Inuse'));

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

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号