Oracle数据库设计请教
正在给长途货车公司做项目,在3000辆货车上安装了采集器,能采集汽车的当前gps位置,载重, 剩余油量,车速,报警等信息,每30秒采集一次,每天采集3000万条信息,推送到车辆动态信息表,表结构如下:
cheliang_dongtai_xinxi(
主键,
车牌号,
车辆注册地行政区划,
车辆当前gps经度信息,
车辆当前gps纬度信息,
车速,0为停驶,大于零则为具体车速,
载重,
剩余油量, 记录时间,
各种报警信息
)
我们的应用,需针对每一辆车,查询及分析以下信息:
1.查询每辆车的行为轨迹信息,并用地图展示车辆当前及历史行驶轨迹
2.根据剩余油量的增减情况 ,分析每辆车的加油情况,
3.分析每辆车的总体油耗情况。
4.车辆预报警信息,如油量耗尽,车辆超载等。
5. 根据车辆当前位置的不断变化,根据指定算法,计算车辆行驶里程信息。
6. 货车从装货开始,每到一个站点卸一次货,直到卸货完毕,完成整个过程叫一个趟次,相邻两次卸货的行驶过程叫一个趟段。根据采集信息,分析出每辆车的趟次及趟段信息。
不知道怎么设计表结构,包括上述采集表,及为了分析而建立的中间分析表,望各位前辈指教。
客户对车辆轨迹信息有一定的实时性要求,对趟段和趟次要求允许一天延迟。
查询时,主要按时间区间,查询每一辆车的上述信息。
我的初步思路是,
1. 对上表车辆动态信息表设计,想到以下几种方法
a. 按车牌号分区,再按时间按季度分区,但有3000辆车,这样就得分3000个主分区,还有时间子分区,是不是太多了?
b. 或只按车辆分区,再在时间上加索引,或只按时间分区,在为车牌号建立索引
c. 车辆注册地行政区划分区,再按时间或车牌分区
感觉哪一种都不合适,网各位前辈指点怎么分区,或有什么其它办法。
2.对需求1,直接查询动态信息表
3.对需求2、3、4、5,分别建立独立的表,从原始表抽出发生对应事件的采集时点的信息,并结合历史信息进行计算,将结果放到表中供业务查询
4. 对需求6,建立两张表,趟次表及趟段表,并从原始动态表抽取对应时点数据存储到该表中供业务查询
不知上述思路是否可行,在线焦急等待中,望各位前辈不吝赐教。