-- 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);