124 lines
7.3 KiB
SQL
124 lines
7.3 KiB
SQL
-- JTT808协议相关数据表
|
|
-- 创建日期: 2025-01-15
|
|
-- 说明: 用于存储车载终端的注册信息、位置数据等
|
|
|
|
SET NAMES utf8mb4;
|
|
|
|
-- ----------------------------
|
|
-- 1、终端设备表
|
|
-- ----------------------------
|
|
DROP TABLE IF EXISTS jtt808_terminal;
|
|
CREATE TABLE jtt808_terminal (
|
|
terminal_id bigint(20) NOT NULL AUTO_INCREMENT COMMENT '终端ID',
|
|
phone_number varchar(20) NOT NULL COMMENT '终端手机号(BCD编码)',
|
|
province_id int(11) DEFAULT 0 COMMENT '省域ID',
|
|
city_id int(11) DEFAULT 0 COMMENT '市县域ID',
|
|
manufacturer_id varchar(20) DEFAULT '' COMMENT '制造商ID',
|
|
terminal_model varchar(30) DEFAULT '' COMMENT '终端型号',
|
|
terminal_device_id varchar(30) DEFAULT '' COMMENT '终端设备ID',
|
|
plate_color tinyint(4) DEFAULT 0 COMMENT '车牌颜色(0-其他,1-蓝色,2-黄色,3-黑色,4-白色,9-新能源)',
|
|
plate_number varchar(20) DEFAULT '' COMMENT '车牌号',
|
|
auth_code varchar(50) DEFAULT '' COMMENT '鉴权码',
|
|
register_time datetime DEFAULT CURRENT_TIMESTAMP COMMENT '注册时间',
|
|
last_auth_time datetime NULL COMMENT '最后鉴权时间',
|
|
online_status tinyint(4) DEFAULT 0 COMMENT '在线状态(0-离线,1-在线)',
|
|
last_heartbeat_time datetime NULL COMMENT '最后心跳时间',
|
|
client_ip varchar(50) DEFAULT '' COMMENT '客户端IP地址',
|
|
create_time datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
update_time datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
PRIMARY KEY (terminal_id),
|
|
UNIQUE KEY uk_phone_number (phone_number),
|
|
KEY idx_plate_number (plate_number),
|
|
KEY idx_online_status (online_status),
|
|
KEY idx_register_time (register_time)
|
|
) ENGINE=InnoDB AUTO_INCREMENT=1000 COMMENT = 'JTT808终端设备表';
|
|
|
|
-- ----------------------------
|
|
-- 2、位置信息表
|
|
-- ----------------------------
|
|
DROP TABLE IF EXISTS jtt808_location;
|
|
CREATE TABLE jtt808_location (
|
|
location_id bigint(20) NOT NULL AUTO_INCREMENT COMMENT '位置记录ID',
|
|
phone_number varchar(20) NOT NULL COMMENT '终端手机号',
|
|
alarm_flag bigint(20) DEFAULT 0 COMMENT '报警标志',
|
|
status_flag bigint(20) DEFAULT 0 COMMENT '状态标志',
|
|
latitude decimal(10,6) NOT NULL COMMENT '纬度',
|
|
longitude decimal(10,6) NOT NULL COMMENT '经度',
|
|
altitude int(11) DEFAULT 0 COMMENT '海拔高度(米)',
|
|
speed decimal(5,1) DEFAULT 0.0 COMMENT '速度(km/h)',
|
|
direction int(11) DEFAULT 0 COMMENT '方向(0-359度)',
|
|
location_time datetime NOT NULL COMMENT '定位时间',
|
|
additional_info text NULL COMMENT '附加信息(JSON格式)',
|
|
client_ip varchar(50) DEFAULT '' COMMENT '客户端IP地址',
|
|
receive_time datetime DEFAULT CURRENT_TIMESTAMP COMMENT '接收时间',
|
|
PRIMARY KEY (location_id),
|
|
KEY idx_phone_number (phone_number),
|
|
KEY idx_location_time (location_time),
|
|
KEY idx_receive_time (receive_time),
|
|
KEY idx_lat_lng (latitude, longitude)
|
|
) ENGINE=InnoDB AUTO_INCREMENT=1000 COMMENT = 'JTT808位置信息表';
|
|
|
|
-- ----------------------------
|
|
-- 3、消息日志表
|
|
-- ----------------------------
|
|
DROP TABLE IF EXISTS jtt808_message_log;
|
|
CREATE TABLE jtt808_message_log (
|
|
log_id bigint(20) NOT NULL AUTO_INCREMENT COMMENT '日志ID',
|
|
phone_number varchar(20) NOT NULL COMMENT '终端手机号',
|
|
message_id varchar(10) NOT NULL COMMENT '消息ID(十六进制)',
|
|
message_type varchar(20) NOT NULL COMMENT '消息类型',
|
|
serial_number int(11) NOT NULL COMMENT '流水号',
|
|
message_direction tinyint(4) NOT NULL COMMENT '消息方向(0-上行,1-下行)',
|
|
message_content text NULL COMMENT '消息内容(十六进制)',
|
|
process_result tinyint(4) DEFAULT 0 COMMENT '处理结果(0-成功,1-失败)',
|
|
error_message varchar(500) DEFAULT '' COMMENT '错误信息',
|
|
client_ip varchar(50) DEFAULT '' COMMENT '客户端IP地址',
|
|
process_time datetime DEFAULT CURRENT_TIMESTAMP COMMENT '处理时间',
|
|
PRIMARY KEY (log_id),
|
|
KEY idx_phone_number (phone_number),
|
|
KEY idx_message_id (message_id),
|
|
KEY idx_process_time (process_time),
|
|
KEY idx_message_direction (message_direction)
|
|
) ENGINE=InnoDB AUTO_INCREMENT=1000 COMMENT = 'JTT808消息处理日志表';
|
|
|
|
-- ----------------------------
|
|
-- 4、终端状态统计表
|
|
-- ----------------------------
|
|
DROP TABLE IF EXISTS jtt808_terminal_stats;
|
|
CREATE TABLE jtt808_terminal_stats (
|
|
stats_id bigint(20) NOT NULL AUTO_INCREMENT COMMENT '统计ID',
|
|
phone_number varchar(20) NOT NULL COMMENT '终端手机号',
|
|
stats_date date NOT NULL COMMENT '统计日期',
|
|
total_messages int(11) DEFAULT 0 COMMENT '总消息数',
|
|
location_reports int(11) DEFAULT 0 COMMENT '位置上报数',
|
|
heartbeat_count int(11) DEFAULT 0 COMMENT '心跳次数',
|
|
online_duration int(11) DEFAULT 0 COMMENT '在线时长(分钟)',
|
|
max_speed decimal(5,1) DEFAULT 0.0 COMMENT '最高速度(km/h)',
|
|
total_mileage decimal(10,2) DEFAULT 0.00 COMMENT '总里程(km)',
|
|
create_time datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
update_time datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
PRIMARY KEY (stats_id),
|
|
UNIQUE KEY uk_phone_date (phone_number, stats_date),
|
|
KEY idx_stats_date (stats_date)
|
|
) ENGINE=InnoDB AUTO_INCREMENT=1000 COMMENT = 'JTT808终端统计表';
|
|
|
|
-- ----------------------------
|
|
-- 初始化数据
|
|
-- ----------------------------
|
|
|
|
-- 插入测试终端数据
|
|
INSERT INTO jtt808_terminal (
|
|
phone_number, province_id, city_id, manufacturer_id, terminal_model,
|
|
terminal_device_id, plate_color, plate_number, auth_code,
|
|
register_time, online_status, client_ip
|
|
) VALUES (
|
|
'020322495257', 0, 0, '', '', '', 0, '2495257',
|
|
CONCAT('AUTH_', UNIX_TIMESTAMP()), NOW(), 1, '39.144.163.108'
|
|
);
|
|
|
|
-- 创建索引优化查询性能
|
|
-- 位置信息表按时间分区索引
|
|
ALTER TABLE jtt808_location ADD INDEX idx_phone_time (phone_number, location_time DESC);
|
|
|
|
-- 消息日志表按时间分区索引
|
|
ALTER TABLE jtt808_message_log ADD INDEX idx_phone_time (phone_number, process_time DESC); |