汽车租赁管理系统数据库设计

合集下载

数据库课程设计汽车租赁系统

数据库课程设计汽车租赁系统

数据库课程设计汽车租赁系统数据库课程设计:汽车租赁系统本文将围绕数据库课程设计题目《汽车租赁系统》,详细介绍设计这一系统所需考虑的各个方面,包括需求分析、数据库设计、系统功能和界面设计等。

通过本文的阐述,读者将能够对汽车租赁系统有一个全面的了解。

一、需求分析汽车租赁系统的设计首先需要进行需求分析。

通过与相关利益相关者的讨论和调研,我们可以明确以下几个方面的需求:1. 用户管理:包括用户注册、登录、个人信息管理等功能。

2. 汽车管理:包括汽车信息的录入、查询、修改、删除等功能。

3. 租赁管理:包括租赁订单的生成、查询、修改、删除等功能。

4. 支付管理:包括租赁费用计算、支付方式选择等功能。

5. 报表管理:生成租赁情况统计报表、财务报表等功能。

二、数据库设计在需求分析的基础上,需要进行数据库设计。

主要包括以下几个方面的设计:1. 用户表设计:包括用户ID、用户名、密码、联系方式等字段。

2. 汽车表设计:包括汽车ID、汽车品牌、型号、颜色、所在地等字段。

3. 租赁订单表设计:包括订单ID、用户ID、汽车ID、租赁开始时间、租赁结束时间等字段。

4. 支付表设计:包括支付ID、订单ID、支付金额、支付方式等字段。

5. 报表表设计:包括报表ID、报表类型、生成时间等字段。

三、系统功能设计在数据库设计完成后,需要考虑系统的功能设计,包括以下几个方面:1. 用户管理功能:实现用户注册、登录、个人信息修改等功能。

2. 汽车管理功能:实现汽车信息的录入、查询、修改、删除等功能。

3. 租赁管理功能:实现租赁订单的生成、查询、修改、删除等功能。

4. 支付管理功能:实现租赁费用计算、支付方式选择等功能。

5. 报表管理功能:实现租赁情况统计报表、财务报表等功能。

四、系统界面设计系统界面的设计需要注重用户友好性和易用性。

可以采用现代化的设计风格和响应式布局,确保系统在不同设备上的正常显示。

对于不同功能模块,可以设计相应的菜单和操作界面,提供直观的操作方式。

汽车租赁系统数据库设计说明书

汽车租赁系统数据库设计说明书
客户登录系统的密码
身份证号
identityNum
Varchar(20)
客户的身份证号码
年龄
age
int
客户年龄
性别
sex
int
客户性别,取值0(男)1(女)
联系方式
phone
Varchar(20)
客户的电话号码
是否会员
vip
int
是否会员,取值0(是)1(否)
车辆信息表—car(用于存放车辆基本信息)
汽车租赁系统数据库设计说明
管理员信息表—admin(用于存放管理员的信息)
字段名
字段代码
数据类型
主键
字段说明
员工id
ad_id
Int

递增,方便数据库管理,并无实际意义
姓名
ad_name
Varchar(20)
管理员的姓名
账号
ad_num
Varchar(20)
管理员登录系统所使用的账号
密码
ad_psw
Varchar(50)
管理员登录系统的密码
客户信息表—customer(用于存放客户信息)
字段名
字段代码
数据类型
主键
字段说明
客户id
cus_id
Int

递增
客户姓名
cus_name
Varchar(20)
客户姓名
客户账号
cus_num
Varchar(20)
客户登录系统账号
客户密码
cus_pwd
Varchar(50)
保险类型
insurance
Varchar(20)
该车辆所入保险类型
是否预约

汽车租赁系统《数据库课程设计》设计说明书

汽车租赁系统《数据库课程设计》设计说明书

汽车租赁系统《数据库课程设计》设计说明书编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(汽车租赁系统《数据库课程设计》设计说明书)的内容能够给您的工作和学习带来便利。

同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。

本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为汽车租赁系统《数据库课程设计》设计说明书的全部内容。

内蒙古科技大学结课大作业课程名称:数据库原理及应用题目:汽车租赁公司CIS数据库系统的设计班级:数学—2011学号:1168132127学生姓名:庄玉雪目录前言 (1)第一章系统概述 (2)1。

1背景 (2)1。

2发展现状 (2)第二章需求分析 (3)2.1 功能需求 (3)2.2 数据需求 (4)第三章系统设计 (5)3。

1系统结构 (5)3。

2 数据库设计 (5)3。

2.1 ER图 (5)3.2。

2 逻辑结构 (6)3.2。

3 数据库物理结构 (7)3.2.4 数据库实现 (9)3。

3用户控制系统 (10)3。

4模块设计 (10)3.4.1 汽车管理模块设计 (10)3.4。

2 基本设置模块设计 (10)第四章后记 (11)4。

1结论 (11)4。

2结束语 (11)参考文献 (12)前言中国汽车租赁以80年中国国际信托投资公司用跨国租赁方式为北京市租赁一批汽车作为开始,已经经历了将近二十年的发展。

汽车租赁也从仅仅为外事活动和旅游提供服务发展到为寻常百姓服务.投资汽车租赁的企业越来越多,全国大中城市基本都有汽车租赁公司存在,用于租赁的车辆总数不断扩大。

据网络资料:我国目前拥有驾驶证的公民多达3000万,而且,这一数量每年还在以一定比例上升.我们了解到在这批人当中有许多是短期内暂时买不起车辆的,但他们中的绝大部分人需要临时用车,而且也有临时租车的支付能力,因此,经营性租赁有极其巨大的市场需求。

数据库课程设计+汽车租赁系统

数据库课程设计+汽车租赁系统

摘要本数据库主要完成对于轿车销售信息管理,包括轿车信息,员工信息,客户信息,轿车销售信息等,系统可以完成对各类信息的浏览、查询、统计等功能。

它采用软件工程的思想,使用IBM DB2作为后台的数据库管理系统。

在系统中既有单条件查询和多条件查询,也有精确查询,其目的都是为了方便用户使用。

本论文主要介绍了本课题的开发过程,所要完成的功能。

并说明了系统设计的重点和设计思想,以及设计过程中所做的主要工作,通过SQL结构化查询语言来实现相关信息的查询功能。

关键词:SQL语言;IBM DB2;数据库设计;汽车租赁管理系统。

I大连交通大学数据库课程设计目录第一章绪论 (1)1.1课题简介 (1)1.2设计目的 (1)1.3设计内容 (2)第二章需求分析 (3)2.1需求分析的任务 (3)2.2需求分析的过程 (3)2.3数据字典 (6)第三章概念结构设计 (7)3.1概念结构设计的方法与步骤 (7)3.1.1概念结构设计的方法 (7)3.1.2概念结构设计的步骤 (7)3.2数据抽象与局部视图设计 (7)3.3视图的集成 (8)第四章逻辑结构设计 (9)4.1E-R图向关系模型的转换 (9)4.2数据模型的优化 (9)4.3数据库的结构 (9)第五章数据库的实施与运行 (12)5.1数据的载入 (12)5.2数据库的运行 (13)总结 (15)参考文献 (16)第一章绪论第一章绪论1.1课题简介轿车销售信息管理系统是为汽车销售公司开发的一套简单易用的系统,随着科技的发展,设备和管理的现代化,在实际工作中如何提高工作效率成为一个很重要的问题。

而建立管理信息系统是一个很好的解决办法。

汽车如今已经与我们的生活密不可分,而近年来购买轿车也成为一种时尚,对于汽车销售公司来讲,其经营管理的汽车种类繁多,样式各异,客户需求量大,客户要求高,每天的工作量大,一套完整的管理系统对于汽车销售公司来说十分重要,在信息飞速发展的今天,计算机在事务管理方面的应用已经相当广泛,但目前很多汽车销售公司还停留在人工管理的水平上,显然不适应时代的发展,管理人员目前需要一套方便、计算机化的管理信息系统来代替他们繁琐、低效的传统手工管理方式,并最终实现汽车销售管理的全面自动化,鉴于诸多要求,经过三年的学习,我们对计算机方面的知识有了很大的提升,本着理论联系实际的宗旨,通过学校提供的这次课程设计实践的机会并在指导教师的帮助下,历经两周时间,我自行设计一套简单的轿车销售管理系统,在下面几章中我将介绍这套轿车销售管理系统的开发过程和所涉及到的问题。

数据库作业(汽车租赁管理系统)

数据库作业(汽车租赁管理系统)

数据库设计与应用班级:姓名:学号:教师:日期:汽车租赁管理系统的设计一、需求分析一个基本汽车租赁管理系统需要实现如下功能:(1)客户预定车辆功能客户通过网上下订单、打电话预定或直接到前台进行车辆预订,系统根据客户的要求查询符号其要求的现有车辆,并生成订单及相应的租车编号。

同时,还包括记录当前租赁车辆的状态,如车身是否存在刮伤,车辆本身是否有问题,当前油量状态等等。

系统可接收该租赁车辆当前状态的图片并存储,以作为客户租车的记录。

(2)系统保存客户信息及其租车记录为了更好地服务客户并发展长期客户,会保存相关租车客户的信息,如年龄、性别、驾龄、职业等信息,以及客户租车的次数。

客户每次租车的时间、租车的类型、还车的时间等信息均更新记录于系统,以形成企业的客户数据储备,便于以后做数据统计或大数据分析。

(3)取车的管理客户的车辆租赁订单成功后,客户取走车辆,此时要更新当前数据库中记录的车辆状态,当租赁成功则自动生成相应的租赁合同。

(4)车辆归还的管理客户归还车辆时,按照生成的租赁合同,依据合同上的具体内容,如租赁费用、时间、是否有损坏等,并对车辆进行检测,以确定是否产生新的破损,并对产生破损的车辆收取维修费用。

然后对归还后的车辆重新录入数据库,更新借出状态,并将需要维修的车辆做标记。

(5)归还车辆的维修对存在损坏的归还车辆加以维修,科学的评估损坏情况,在结合相应的保险合同的基础之上,由保险公司做相应处理。

二、系统功能模块(1)车辆租赁管理模块车辆租赁管理包括车辆租赁、车辆续租、车辆归还等方面的管理,相应的还包括基于租赁车辆生成订单和合同,并能打印相关手续凭证以及报表等材料。

进一步还包括用户从网上登录系统预订车辆信息。

(2)车辆信息管理模块车辆信息管理包括记录车辆的颜色、车牌、车辆型号、车辆维修状态、车辆的交通违章状态、车辆保养情况、购买日期、租金、租赁状态等车辆的相关信息。

还包括对新购进的车辆进行信息添加,对报废或出售的车辆进行删除等相关方面的信息管理,对车辆的信息进行实时的动态调整。

汽车租赁系统数据库课程设计

汽车租赁系统数据库课程设计

汽车租赁系统数据库课程设计设计目的:本课程设计旨在设计一个汽车租赁系统的数据库,实现对汽车、租赁订单以及用户信息的管理和查询功能。

通过本课程设计,学生将学习到数据库设计的基本原理和方法,掌握数据库设计的流程和技巧,培养对数据库系统的理解和应用能力。

设计要求:1. 设计并实现一个汽车租赁系统的数据库,包括汽车、租赁订单和用户信息的管理和查询功能。

2. 汽车信息应包括汽车编号、品牌、型号、颜色、里程数、租金等属性。

3. 租赁订单信息应包括订单编号、租车时间、还车时间、租车天数、总租金等属性。

4. 用户信息应包括用户编号、姓名、性别、联系方式等属性。

5. 实现对汽车、租赁订单以及用户信息的增加、删除、修改和查询功能。

数据库设计:根据以上设计要求,我们可以设计以下数据库结构:1. 汽车信息表(Car)字段:汽车编号(CarID)、品牌(Brand)、型号(Model)、颜色(Color)、里程数(Mileage)、租金(Rent)2. 租赁订单信息表(Order)字段:订单编号(OrderID)、汽车编号(CarID)、用户编号(UserID)、租车时间(StartTime)、还车时间(EndTime)、租车天数(Days)、总租金(TotalRent)3. 用户信息表(User)字段:用户编号(UserID)、姓名(Name)、性别(Gender)、联系方式(Contact)数据库设计流程:1. 初步分析需求,确定数据库的表和字段。

2. 根据需求,设计出数据库的ER图。

3. 将ER图转化为关系模式图,确定关系表的结构。

4. 设计主键和外键,确定关系表之间的联系。

5. 设计表之间的约束条件,例如唯一性约束、非空约束等。

6. 根据设计完成的表结构,创建数据库并创建相应的表。

7. 编写数据库脚本,实现对汽车、租赁订单和用户信息的增删改查功能。

8. 进行数据的导入和测试,验证数据库设计的正确性和可用性。

具体实现:根据以上数据库设计,我们可以使用关系型数据库管理系统如MySQL或Oracle来实现汽车租赁系统的数据库。

数据库课程设计汽车租赁系统

数据库课程设计汽车租赁系统

数据库课程设计汽车租赁系统1. 引言汽车租赁系统是一种应用广泛的信息管理系统,在汽车租赁行业具有重要的作用。

本文旨在通过数据库课程设计,实现一个可靠且高效的汽车租赁系统。

2. 数据库设计2.1 数据库模型选择在设计汽车租赁系统的数据库时,我们选择了关系型数据库模型,因其具有结构化、严格的数据表定义和强大的数据管理功能。

2.2 数据库实体关系图我们通过实体关系图来表示系统中的实体以及它们之间的关系。

以下是系统中的主要实体以及它们之间的关系:- 用户 (User) 实体:记录用户的基本信息,包括姓名、电话、地址等。

- 汽车 (Car) 实体:记录汽车的相关信息,包括车牌号、品牌、型号、价格等。

- 租赁订单 (Rental Order) 实体:记录租赁订单的详细信息,包括用户、汽车、租赁时间、费用等。

3. 数据库表设计3.1 用户表 (User Table)用户表用于存储用户的基本信息,包括用户ID、姓名、电话、地址等。

以下是用户表的字段设计:- 用户ID (UserID):唯一标识用户的ID。

- 姓名 (Name):用户的姓名。

- 电话 (Phone):用户的联系电话。

- 地址 (Address):用户的联系地址。

3.2 汽车表 (Car Table)汽车表用于存储汽车的相关信息,包括车牌号、品牌、型号、价格等。

以下是汽车表的字段设计:- 车牌号 (License Plate):汽车的唯一标识,用于识别不同的汽车。

- 品牌 (Brand):汽车的品牌。

- 型号 (Model):汽车的型号。

- 价格 (Price):汽车的租赁价格。

3.3 租赁订单表 (Rental Order Table)租赁订单表用于存储租赁订单的详细信息,包括用户、汽车、租赁时间、费用等。

以下是租赁订单表的字段设计:- 订单号 (OrderID):租赁订单的唯一标识。

- 用户ID (UserID):租赁订单对应的用户ID。

- 车牌号 (License Plate):租赁订单对应的汽车车牌号。

数据库设计说明样板

数据库设计说明样板

数据库设计(大作业)题目:汽车租赁管理系统指导教师:姚瑶小组成员姓名:小组成员学号:专业班级:院(系):完成时间:一、数据库需求分析系统简介本系统在网络中现有的汽车租赁管理系统的基础上,主要增加了分店普通员工对汽车租赁的操作,员工确定完订单后不需向经理办公室报送成绩,可以直接的把订单上传到网络上,分店经理也可以方便快速的查询到店内已下的订单,而公司管理人员也不必总呆在公司的办公室,他们都不受时间,位置,空间的限制,只要有上网的条件,在家里就可以完成有关车辆、订单的录入,更新,管理,查询和删除。

本系统将会改变以前汽车租赁管理的状况,提高工作效率。

希望能为员工和公司的工作带来便利。

1.系统数据字典经过对汽车租赁系统业务处理过程的调研,得到系统的数据字典如下所示:a)数据项,以“汽车编号”为例:数据项:汽车编号含义说明:唯一标识每辆汽车别名:学生号类型:字符型长度: 8取值范围:00000000至99999999b)数据结构:学生含义说明:是学籍管理子系统的主体数据结构,定义了一个学生的有关信息组成:学号,姓名,性别,年龄,所在系,年级c)数据流:体检结果说明:学生参加体格检查的最终结果数据流来源:体检数据流去向:批准组成:……平均流量:……高峰期流量:……d)数据存储:学生登记表说明:记录学生的基本情况流入数据流:……流出数据流:……组成:……数据量:每年3000张存取方式:随机存取二、概念模型设计图5.21 学籍管理局部应用的分E-R 图导师班级 学生组成 管理班主任档案材料宿舍住宿归档指导系有参加学会 1N111 NN N11N MN1 具有社会关系1N三、逻辑结构设计学生(学号,姓名,性别,出生日期,所在系,年级,班级号,平均成绩,档案号)宿舍楼(宿舍楼号,性别)住宿(学号,宿舍编号)宿舍(宿舍编号,宿舍楼号,地址,性别,人数)班级(班级号,学生人数)教师(职工号,姓名,性别,职称,班级号,是否为优秀班主任)指导(职工号,学号)课程(课程号,课程名,学分,教室号)选修(学号,课程号,成绩)教科书(书号,书名,价钱)教室(教室编号,地址,容量)讲授(课程号,教师号,书号)档案材料(档案号,……)四、物理设计汽车租赁系统的数据基本表:本系统将数据存储在五个表中,这五个表分别是:车辆表(见表3-1):保存车辆的基本信息,包括车辆的名称,车辆的车牌号,出租价格,所在的分店,是否租出。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

长沙学院课程设计说明书题目汽车租赁管理系统学院计算机工程与应用数学专业(班级)姓名学号指导教师起止日期课程设计任务书课程名称:数据库系统原理课程设计设计题目:汽车租赁管理系统已知技术参数和设计要求:1、某汽车租赁公司汽车租赁管理系统需要如下信息:工作人员信息包括:工号、姓名、性别、联系电话等。

客户信息包括:身份证号、姓名、性别、所在单位、联系电话等。

车辆信息包括:车牌号、品牌、颜色、座位数、日租价格、日租超公里价格、月租价格、租赁状态、购入日期等。

车辆类别信息包括:分类号,库存数。

其业务规则描述如下:一个工作人员可以对很多辆车辆进行管理,一辆车也可以被多个工作人员管理;一辆车只能属于一种车辆类别,而一种车辆类别可以包含多辆车;一个客户可以租多辆不同的车。

2、系统功能的基本要求:可以实现对车辆、租赁客户的查询,可以查询汽车、客户租赁历史记录。

可以按类别统计汽车的租赁金额和剩余的库存数,可以统计某一年龄客户群体对某类汽车的租赁喜好,能模拟客户对汽车的租借、归还业务。

各阶段具体要求:1.需求分析阶段●定义数据项的含义和取值●定义目标系统的数据流2.概念结构设计阶段●画出实体模型E-R图3.逻辑结构设计阶段●将实体模型转化为关系模型●给出每个关系的主关键字和函数依赖集●分析你所设计的关系数据库模式是否属于3NF4.物理设计阶段●确定所有字段的名称、类型、宽度、小数位数及完整性约束●确定数据库及表的名称及其组成●确定索引文件和索引关键字5.数据库安全及维护设计阶段●设计一个适合的数据库安全策略(用户身份认证、访问权限、视图)●为了实现复杂的数据完整性约束,设计适当的触发器●设计一个适合的数据库备份策略6、实施阶段●要求所有操作必须在查询分析器中用SQL语句或系统存储过程完成。

设计工作量:(1)软件设计:完成问题陈述中所提到的所有需求功能。

(2)论文:要求撰写不少于3000个文字的文档,详细说明各阶段具体要求。

工作计划:安排两周时间进行课程设计,软件开发步骤如下,第一周完成1~4,第二周完成5~8,论文同步进行;1) 选定题目2) 需求分析3) 概念结构设计4) 逻辑结构设计5) 物理设计6) 数据库安全及维护设计7) 数据库上机实现8) 答辩4课时:讲授32课时:上机、调试。

计算机学院机房4课时:答辩。

计算机系机房。

注意事项⏹提交文档➢长沙学院课程设计任务书(每学生1份)➢长沙学院课程设计论文(每学生1份)➢长沙学院课程设计鉴定表(每学生1份)目录1.需求分析阶段 (2)2.概念结构设计阶段 (2)3.逻辑结构设计阶段 (2)4.物理设计阶段 (2)5.数据库安全及维护设计阶段 (2)6、实施阶段 (2)1.引言 (5)1.1编写目的 (6)1.2参考资料 (6)2.需求规约 (6)2.1系统业务描述 (6)2.2功能需求分析 (7)3. 数据库环境说明 (11)4.数据库的命名规则 (11)4.1数据库对象命名规则 (11)4.2数据项编码规则 (11)5.逻辑设计 (12)5.1创建与数据库相关的ER图、表及关系图 (12)5.2创建数据库系统的关系模型 (14)6. 物理设计 (14)6.1表汇总 (14)6.2表的详细情况 (15)6.3视图的设计 (18)6.3.1创建一个可以查询当前可租用车辆及价格与库存数的视图 (18)6.4存储过程的设计 (19)6.4.1查询当前车辆信息状态 (19)6.4.2查询当前可租用车辆及价格与库存数 (19)6.4.3客户租车 (20)6.4.4还车 (21)6.4.5新建车辆类别信息 (21)6.4.6新增车辆 (22)6.4.7删除车辆 (24)6.4.8注册新用户 (25)6.4.9删除用户 (26)6.4.10注册新工作人员 (26)6.4.11删除工作人员 (27)6.4.12工作人员查看所有订单 (28)6.4.13用户查看自己订单 (29)6.4.14工作人员查询客户信息 (29)6.5触发器的设计 (30)6.5.1(租车)创建触发器,当订单表插入一条新订单时,使对应车辆的库存数-1 (30)6.5.2(租车时)创建触发器,当订单表中插入一条记录时,使对应车辆的状态改为已租状态 (31)6.5.3(还车时)创建触发器,当租车表更新一条数据时,使对应车辆在汽车表里面的状态修改为未租状态 (32)6.5.4(还车时)创建触发器,当租车表更新一条数据时,使对应车辆的库存数+1 (33)6.5.5(还车时)创建触发器,当租车表更新一条记录时,计算客户的租车费用 (34)6.5.6 (新增车辆)创建触发器,当新增车辆时,对应库存数+1 (35)6.5.7(删除车辆)创建触发器,当删除一辆车后,其对应车库数-1 (36)7. 安全性设计 (37)7.1防止用户直接操作数据库的方法 (37)7.2用户帐号密码的加密方法 (37)7.3角色与权限 (38)8. 数据库管理与维护说明 (38)9. 实验总结 (40)10. 附录 (40)1.引言1.1 编写目的本文档是汽车租赁系统设计文档的组成部分,编写数据库设计文档的目的是:明确数据库的表名、字段名等数据信息,用来指导后期的数据库脚本的开发。

本文档的读者对象是需求人员、系统设计人员、开发人员、测试人员。

1.2参考资料2.需求规约2.1 系统业务描述(1)数据库创建背景该数据库建立于sq l server 2008 r2,环境为windows7系统名称:汽车租赁管理系统。

系统的开发者:小组成员系统的用户:租车客户以及租赁公司的工作人员。

(2)数据库系统要完成的业务流程及工作内容首先完成需求分析,根据需求关系画出ER-图,并写出关系模式。

根据ER图用SQL server创建与数据库相关的表,视图,存储过程以及触发器。

系统的功能要求基本实现对车辆,租赁客户的查询。

可以查询客户租赁的历史记录。

可以查看汽车价格、库存,可以查看汽车的租借、归还、以及费用。

图2.1 总体框架图(3)揭示该数据库的资源需求和设计约束2.2 功能需求分析表2.1表2.3表2.6表2.8表2.10表2.12表2.133. 数据库环境说明4.数据库的命名规则4.1 数据库对象命名规则4.2 数据项编码规则表4.2 数据项编码规则表5.逻辑设计5.1创建与数据库相关的ER图、表及关系图图5.1 ER图图5.2 关系图5.2创建数据库系统的关系模型1.工作人员(工号、密码、姓名、性别、联系电话)2.客户信息(客户编号、身份证号、密码、姓名、性别、所在单位、联系电话)3.车辆信息(车牌号、座位数、颜色、租赁状态、购入日期、分类号)4车辆类别(分类号、车型、库存数、日租价格、日租超公里价格、月租价格、月租超公里价格)5.租赁(订单号、客户编号、车牌号、租赁日期、归还日期、租赁里程数、租赁费用)6. 物理设计6.1表汇总表6.1 汇总表6.2表的详细情况表6.2[car]:[车辆信息表]表6.5[worker]:[工作人员信息表]6.3视图的设计6.3.1创建一个可以查询当前可租用车辆及价格与库存数的视图create view vi_usecarasselect carno'车牌号',carcolor'颜色',carseat'座位数',carclassname'品牌',carsum'库存数',cardayprice'日租价格',carbeyonddayprice'日租超出价格' ,carmonthprice '月租价格',carbeyondmonthprice'月租超出价格'from car,carclasswhere carstate = '未租'and car.carclassno=carclass.carclassno ;图6.1 视图的创建6.4存储过程的设计6.4.1查询当前车辆信息状态create procedure proc_carasselect carno'车牌号',carcolor'颜色',cardate'购入日期',carseat'座位数',carstate'当前状态'from car;图6.2 查询车辆信息6.4.2查询当前可租用车辆及价格与库存数create procedure proc_usecarasselect carno'车牌号',carcolor'颜色',carseat'座位数',carclassname'品牌',carsum'库存数',cardayprice'日租价格',carbeyonddayprice'日租超出价格' ,carmonthprice '月租价格',carbeyondmonthprice'月租超出价格'from car,carclasswhere carstate = '未租'and car.carclassno=carclass.carclassno ;图6.3查询可租用车辆信息6.4.3客户租车create procedure proc_rentcar(@customerno varchar(10),@carno varchar(10),@rentdate date)asif (select car.carstate from car where(car.carno = @carno))='未租' begininsertinto rent(rentdate,rentbackdate,customerno,carno,milage,cost) values(@rentdate, @rentdate,@customerno,@carno,0,'0');print '租车成功';endelsebeginprint'当前车辆已被租用或不存在!请更换车辆'end图6.4 租车操作6.4.4还车create procedure proc_returncar(@rentno varchar(10),@returndate date ,@milage int)asbeginupdate rentsetage=@milage,rent.rentbackdate=@returndatewhere(rent.rentno=@rentno);print '还车成功';end图6.5 还车操作6.4.5新建车辆类别信息create procedure add_carclass(@workno varchar(10),@workpassword varchar(10),@carclassname varchar(10),@cardayprice varchar(10) ,@carbeyonddayprice varchar(10),@carmonthprice varchar(10) ,@carbeyondmonthprice varchar(10))asif @workpassword=(select workpassword from worker where (workno = @workno)) beginprint '验证正确'insertinto carclassvalues(@carclassno,@carclassname,0 ,@cardayprice,@carbeyonddayprice,@carmonth price,@carbeyondmonthprice)end图6.6 新建车辆类别操作图6.7 新建成功6.4.6新增车辆create procedure add_car(@workno varchar(10),@carno varchar(10),@carcolor varchar(10),@cardate varchar(10),@carseat varchar(10),@carclassno varchar(10))asif @workpassword=(select workpassword from worker where (workno = @workno)) beginprint '身份验证正确!'insertinto carvalues(@carno,@carcolor,@cardate,@carseat,@carclassno,'未租')print '新增车辆成功!'endelsebeginprint '账号或密码错误!'end图6.8 新增车辆操作图6.9 新增车辆成功6.4.7删除车辆create procedure del_car(@workno varchar(10),@workpassword varchar(10),@carno varchar(10))asif @workpassword=(select workpassword from worker where (workno = @workno)) beginprint '身份验证正确!'deletefrom carwhere carno=@carnoprint '车辆删除成功!'endelsebeginprint '账号或密码错误'end图6.10 删除车辆操作图6.11 删除车辆成功6.4.8注册新用户create procedure add_customer(@customerno varchar(10),@customterid varchar(20),@customername varchar(10),@customersex varchar(10),@customeraddress varchar(10),@customerphone varchar(20))asinsertinto customervalues(@customerno,@customterid,@customername,@customersex,@customeraddress,@ customerphone)print '注册成功!'图6.12 新用户注册操作图6.13 注册成功6.4.9删除用户create procedure del_customer(@customerno varchar(10))asdeletefrom customerwhere(customerno=@customerno)图6.14 删除用户操作图6.15 删除用户成功6.4.10注册新工作人员create procedure add_worker(@workno varchar(10),@workpassword varchar(10),@workname varchar(10),@worksex varchar(10),@workphone varchar(20))asinsertinto workervalues(@workno,@workpassword,@workname,@worksex,@workphone) print '注册成功'图6.16 注册工作人员图6.17 注册成功6.4.11删除工作人员create procedure del_worker(@workno varchar(10))asdeletefrom workerwhere (workno=@workno)图6.18 删除工作人员图6.19 删除成功6.4.12工作人员查看所有订单create procedure check_rentasselect *from rent图6.20 订单记录表图6.21 查询成功6.4.13用户查看自己订单create procedure check_carrent(@customerno varchar(10))asselect *from rentwhere(customerno = @customerno)图6.22 查询订单6.4.14工作人员查询客户信息create procedure check_customer(@workno varchar(10),@workpassword varchar(10),@customerno varchar(10))asif @workpassword=(select workpassword from worker where (workno = @workno))beginprint '验证正确'select *from customerwhere (customerno = @customerno)endelsebeginprint '账号或密码错误'end图6.23 客户信息表图6.24 查询成功6.5触发器的设计6.5.1(租车)创建触发器,当订单表插入一条新订单时,使对应车辆的库存数-1create trigger sub_carsumon rentafter insertasupdate carclassset carclass.carsum=carclass.carsum-1where carclassno in(select carclassno from car where carno in(select carno from inserted) )图6.25 租车操作图6.26 触发器更新库存数6.5.2(租车时)创建触发器,当订单表中插入一条记录时,使对应车辆的状态改为已租状态create trigger alter_carstateon rentafter insertasupdate carset carstate = '已租'where carno in(select carnofrom inserted)图6.27 租车操作图6.28 触发器改变租车状态6.5.3(还车时)创建触发器,当租车表更新一条数据时,使对应车辆在汽车表里面的状态修改为未租状态create trigger alter_carstate2on rentafter updateasupdate carset carstate = '未租'where carno in(select carnofrom inserted)图6.29 还车操作图6.30 触发器改变租车状态6.5.4(还车时)创建触发器,当租车表更新一条数据时,使对应车辆的库存数+1create trigger add_carsumon rentafter updateasupdate carclassset carclass.carsum=carsum+1where carclassno in(select carclassno from car where carno in(select carno from inserted))图6.31 换车操作图6.32 触发器更新库存数6.5.5(还车时)创建触发器,当租车表更新一条记录时,计算客户的租车费用create trigger calculate_coston rentafter updateasdeclare @price1 varchar(10),@price2 varchar(10)if ((select milage from rent where rentno in(select rentno from inserted))> 200)beginselect @price2=(select carbeyonddayprice from carclass where carclassno in (select carclassno from car where carno in(select carno from inserted)) )update rentset cost=@price2*(DATEDIFF(DAY,rent.rentdate,rent.rentbackdate)+1)where rentno in (select rentno from inserted)endelsebeginselect @price1=(select cardayprice from carclass where carclassno in (select carclassno from car where carno in(select carno from inserted)) )update rentset cost=@price1*(DATEDIFF(DAY,rent.rentdate,rent.rentbackdate)+1) where rentno in (select rentno from inserted)end图6.33 还车操作图6.34 触发器计算价格6.5.6 (新增车辆)创建触发器,当新增车辆时,对应库存数+1create trigger add_carsum1on carafter insertas1update carclassset carclass.carsum=carsum+1where carclassno in (select carclassno from inserted)图6.35 新增车辆图6.36 触发器更新库存数6.5.7(删除车辆)创建触发器,当删除一辆车后,其对应车库数-1create trigger sub_carsum1on carafter deleteasupdate carclassset carsum=carsum-1where carclassno in(select carclassno from deleted)exec del_car '1','123456','湘G11111'图6.37 删除车辆图6.38 触发器更新库存数7. 安全性设计7.1防止用户直接操作数据库的方法示例代码exec add_car '1','123456','湘G11111','黑色','2018-6-10','5','2'在操作前对工作人员的账号和密码进行验证,验证通过后才可操作数据库if @workpassword=(select workpassword from worker where (workno = @workno)) beginprint '身份验证正确!'insertinto carvalues(@carno,@carcolor,@cardate,@carseat,@carclassno,'未租')print '新增车辆成功!'endelsebeginprint '账号或密码错误!'end7.2用户帐号密码的加密方法在SQl server下自带的函数hashbytes() ,此函数可以用来计算一个字符串的 MD5使用方法如下:--获取123456的MD5加密串select hashbytes('MD5', '123456') ;7.3 角色与权限关键代码worker拥有所有权限grant all on car to worker with grant optiongrant all on carclass to worker with grant optiongrant all on rent to worker with grant optiongrant all on worker to worker with grant optiongrant all on customers to worker with grant option用户拥有查看customer和car的权限grant select on car to customersgrant select,update on customer to customersgrant select on carclass to customers8. 数据库管理与维护说明要保证数据库的安全和可靠就需要对其日常管理进行全面的掌控和及时的维护,以此获得更加安全的数据库环境。

相关文档
最新文档