功能设计:
在管理员方面,可以添加车辆,按照编号查询车辆、删除车辆、修改车辆信息,可以显示可租用的车辆和所有车辆信息,并且可以按照租金进行升序或者降序排列,对车牌可以进行查询;按照编号查询用户、修改用户信息、删除用户,按照用户的姓名进行模糊查询;可以添加供应商,按照编号查询供应商、修改供应商信息、删除供应商;查看所有购买车辆的信息;查看所有用户租用车辆的信息;按照车牌分类对租用次数进行统计。
在用户方面,可以显示可租用的车辆和所有车辆信息,并且可以按照租金进行升序或者降序排列,对车牌可以进行查询;租用车辆;归还车辆;查看自己的订单。
基本功能框架
E-R图
1、登录界面:点击验证码图片自动切换看不清的验证码,输入密码和账号以及验证码以后,首先会验证验证码的正确性,验证码不对,则会提示验证码错误;其次进行账号和密码的验证,若该用户未注册会提示密码或账号错误。
登陆界面

2、注册界面:必须填入所有的信息,否则会提示文本框为空注册不成功;注册时应保持两次密码正确,若两次输入密码不一样,会有提示。注册成功后会弹出对话框给与用户的账号;注册成功返回登陆页面。
注册界面
在这里插入图片描述
在这里插入图片描述
3、租用和归还车辆:点击“车辆信息”,可以选择租用车辆功能,若存在用户逾期未还的订单,则会弹出对话框说明有点订单未完成,不得租用;反之,输入车辆编号,先进行查询并显示车辆信息,确定信息后填写租用时间,即可显示租用成功,再点击查看订单,则可以显示自己的租用车辆的订单信息。而且在租用成功后进行车辆查询,则库存量已经减一,租用次数已经增加一。
归还车辆时,输入租用编号,若输入的编号不存在或者该订单已完成,则不会查询到。
在这里插入图片描述在这里插入图片描述
4、车牌查询:在主菜单上有个查询的框,输入车牌可以查询该车型的车辆,若输入为空,则显示所有车辆,若不存在该车牌的车辆则没有显示。
在这里插入图片描述
5、添加车辆:
以管理员的身份登陆进行添加车辆,添加的车辆信息不得为空,而且供应商编号必须存在,否则添加不成功,会有相应对话框弹出。
在这里插入图片描述

在这里插入图片描述
···6、修改信息:
要进行修改信息时需要先按编号查询到相应的用户/供应商/车辆,然后可以进行修改,删除(为保持数据库信息一致性和安全性,部分信息不得修改)。若查询不到会有提示,在修改删除后,立即生效。
在这里插入图片描述
7、模糊查询:管理员可以对用户进行模糊查询。
在这里插入图片描述
8、租车情况统计:在“订单信息”一栏可以显示目前租车信息情况,根据车牌进行分类,对已有车牌的车辆的统计。
在这里插入图片描述
表的设计:
1、车辆:
车辆编号为主键,为int型,长度为11,不能为null;
车牌为varchar型,长度为45,不能为null;
颜色为varchar型,长度为45,不能为null;
租金为int型,长度为11,不能为null;
库存量为int型,长度为11,不能为null;
租用次数为int型,长度为11,不能为null;
该表为车牌建立索引,为普通索引类型,索引方法为BTTREE;为车辆编号建立索引,为唯一索引,索引方法为BTTREE。
2、供应商:
供应商编号为主键,为int型,长度为11,不能为null;
供应商名为varchar型,长度为45,不能为null;
供应商联系方式为varchar型,长度为45,不能为null;
城市为varchar型,长度为45,不能为null;
该表为供应商编号建立索引,为唯一索引类型,索引方法为BTTREE;
3、用户:
用户编号为主键,为int型,长度为11,不能为null;
姓名为varchar型,长度为45,不能为null;
性别为varchar型,长度为5,不能为null;
联系方式为varchar型,长度为30,不能为null;
家庭住址为varchar型,长度为45,不能为null;
密码为varchar型,长度为20,不能为null;
该表为用户编号建立索引,为唯一索引类型,索引方法为BTTREE;
4、购买:
订单编号为主键,为int型,长度为11,不能为null,订单编号自动递增;
车辆编号为外键,为int型,长度为11,不能为null,参考车辆表的主键车辆编号,删除和更新时为级联;
供应商编号为外键,为int型,长度为11,不能为null,参考供应商表的主键供应商编号,删除和更新时为级联;
数量为int型,长度为11,不能为null;
该关系表设置触发器“更新库存”,在该表插入之后触发对车辆表的 对应编号的车辆库存量的设置(增加)。
5、租用:
租用编号为主键,为int型,长度为11,不能为null,租用编号自动递增;
车辆编号为外键,为int型,长度为11,不能为null,参考车辆表的主键车辆编号,删除和更新时为级联;
用户编号为外键,为int型,长度为11,不能为null,参考用户表的主键用户编号,删除和更新时为级联;
租用天数为int型,长度为11,不能为null;
押金为int型,长度为11,不能为null;
归还情况为tinyint型(mysql不存在布尔型数据类型),长度为4,默认值为0,即未归还;
租用时间为timestamp型,设置默认值为当前时间。
该关系表设置触发器“更新租次”,在该表插入之后触发对车辆表的对应编号的车辆租用次数加一;
设置触发器“更新库存2”,在该表插入之后触发对车辆表的对应编号的车辆库存减一;
设置触发器“还车更新库存”,在更新该表之后触发对车辆表的对应编号的车辆库存量变化(如果未归还的车归还则库存加一);

视图的定义:
1、购买订单(车辆编号,车牌,颜色,供应商编号,供应商名,供应商联系方式,购买数量);
参照车辆的属性:车辆编号,车牌,颜色;供应商属性:供应商编号,供应商名,供应商联系方式;购买的属性:数量。
2、租用订单(租用编号,车辆编号,车牌,姓名,颜色,租金,用户编号,用户联系方式,租用天数,是否归还,押金);
参照车辆的属性:车辆编号,车牌,颜色,租金;租用的属性:租用编号,租用天数,是否归还,押金,租用时间;用户属性:用户编号,姓名,用户联系方式。
3、管理员车辆视图(车辆编号,车牌,颜色,租金,库存量,租用次数,购买数量,供应商名,供应商联系方式,供应商所在城市)
参照车辆的属性:车辆编号,车牌,颜色,租金,库存量,租用次数;购买的属性:数量;供应商属性:供应商名,供应商联系方式,城市。
索引的定义:
1、给用户编号设置“用户编号_idx”索引,索引方法为BTTREE方法;
2、给车辆编号设置“车辆编号1”索引,索引方法为BTTREE方法;
3、给车牌设置“车牌”索引,类型为普通型,索引方法为BTTREE方法;

存储过程的定义:
1、定义findcar存储过程,用于对管理员车辆视图进行车牌的查询;
2、定义findname存储过程,对用户表进行按照姓名进行模糊查询;

版权声明:本文为匿名原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: