停车信息表的设计建议

数据库中 停车信息表的设计建议
问题:如果实现车辆进场 自动记录进入时间,离开收费的时候,A.自动记录离开时间,B.计算停车时间(单位:小时)。
实现方法有两种:
方法一:由JAVA代码来获取时间:
由JAVA代码来获取时间,并以字符串的方式存储到数据库中。JAVA读取数据库中的字符串并做类型转换为日期型。计算两个日期的时间间隔。
操作建议如下:

1--创建停车信息表
create table parkingInfo
(
    id int auto_increment  primary key, --序号作为主键
    cno varchar(10)  not null ,  --车牌编号
    inDate varchar(20)  not null,   --停车时间,用字符串的方式来存储时间如 YYYY-MM-DD HH:MM:SS
    outDate varchar(20) default null  --离开时间,默认值为null。
)

2、JAVA代码中 用 Date 或 Calendar类 获取时间。
3、JAVA 代码中 计算时间间隔。(单位小时,四舍五入)

long betweenDays = (long)(( inDate - outDate) / (1000 * 60 * 60 ) + 0.5); 

相关参考网址:http://blog.csdn.net/cynhafa/article/details/8053166
方法二:由SQL代码来获取时间:
1、 创建停车信息表
–创建停车信息表

create table parkingInfo
(
    id int auto_increment  primary key, --序号作为主键
    cno int not null , --车牌编号,切记若有会员表,则作为外码要与会员表中车牌编号字段名称和类型一直。
    inDate datetime  not null,   --停车时间,字段类型为datetime(时间日期型)不能为空
    outDate datetime  default null --离开时间,默认值为null
)

2、车辆停车(入库)的时候,只需要更新车牌号和入库时间即可。
例如 川A2546 停车:

 insert into parkingInfo (cno,inDate)  values ("川A2546",now())

注意:
A.now() 是SQL语句中的函数 表示获取当前的日期和时间。若只获取日期 则SQL函数为curdate().若只获取时间,则SQL函数为 curtime(). 可以用语句做测试 select curdate()
B.id 为自动增长字段,不需要插入值。 入库的时候不知道出库时间因此不能插入出库时间。

3、查询某个车辆是否出库。
分析:要考虑同一个车牌的车辆 多次进入停车场。则停车信息表中就会有该车牌的多条记录。
但是,只要该车辆离开停车场,那么离开时间就一定不会为空(null)。换句话说,若某个记录 只有进场时间,而离开时间为空(null)则一定说明 该车一定还没有离开。
因此有如下操作。

A、	查询某个车是否离开,例如查询 川A2546的是否离开
select * from parkingInfo where rno="川A2546” and outDate is null
B、查询目前停车场一共停了多少辆车。(占用了多少停车位)
select count(id)  from parkingInfo where  returnDate is null
说明 count 是SQL语句中的统计函数,表示统计有多少条记录。

C、查询某个车在停车场停过多少次(离开才算一次)
select count(id) from parkingInfo where  rno="川A2546" and outDate is not null

4、车辆出库的时候 只需要更新没有出库的车辆信息的离开时间outDate就可以了
例如 川A2546出库

update parkingInfo  set  returnDate=now() where  rno="川A2546" and outDate is null

5、统计某个车辆总共停车多少时间。SQL语句
例如,当川A2546出库时候 自动计算停了多少小时

select timestampdiff(“hour”,inDate,outDate) from parkingInfo  where  rno="川A2546"

说明 timestampdiff是SQL语句中计算时间间隔的函数。可以参考以下网址

http://blog.csdn.net/zmxiangde_88/article/details/8011661

发布了77 篇原创文章 · 获赞 19 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_43488547/article/details/103726283