停车信息表的设计建议

数据库中 停车信息表的设计建议
问题:如果实现车辆进场 自动记录进入时间,离开收费的时候,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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供一些关于停车场管理系统数据库设计建议。一个基本的停车场管理系统需要考虑以下几个实体和关系: 1. 停车场:停车场包括停车场名称、地址、容量、费率等基本信息。 2. 车辆车辆包括车牌号、车型、颜色等基本信息。 3. 停车记录:停车记录包括进入时间、离开时间、停车时长、停车费用等信息。 4. 停车位:停车位包括停车位编号、停车位类型(例如小车位、大车位、残疾人车位等)。 基于以上实体和关系,我们可以设计如下的数据库: 1. 停车(parking_lot):主键为停车场ID,包括停车场名称、地址、容量、费率等信息。 2. 车辆(vehicle):主键为车辆ID,包括车牌号、车型、颜色等信息。 3. 停车记录(parking_record):主键为停车记录ID,包括车辆ID、停车场ID、进入时间、离开时间、停车时长、停车费用等信息。 4. 停车(parking_spot):主键为停车位ID,包括停车位编号、停车位类型、所在停车场ID等信息。 在上述中,停车场ID、车辆ID、停车记录ID、停车位ID均可使用自增长的数字类型作为主键。同时,需要在之间建立关联关系,例如: 1. 停车停车之间为一对多关系,一个停车场可以有多个停车位。 2. 停车停车记录之间为一对多关系,一个停车场可以有多个停车记录。 3. 车辆停车记录之间为一对多关系,一个车辆可以有多条停车记录。 最后,根据实际需求,还可以在上述数据库中添加其他的字段,例如会员信息、收费记录等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值