From d204727a07cf21226563ae61da9ffe81f52a3a3e Mon Sep 17 00:00:00 2001 From: g82tt Date: Sat, 16 May 2026 03:24:29 +0800 Subject: [PATCH] Phase0_7tables_drop_point_table --- doc/db_init.sql | 74 +++++++++++++++---------------------------------- 1 file changed, 22 insertions(+), 52 deletions(-) diff --git a/doc/db_init.sql b/doc/db_init.sql index 6a39c5b..70315ae 100644 --- a/doc/db_init.sql +++ b/doc/db_init.sql @@ -1,14 +1,14 @@ -- ============================================ --- SecMPS v2.0 数据库建表脚本 +-- SecMPS v2.0 数据库建表脚本(7张表) -- 数据库: gljs_main --- 关联规则: 子表字段名=主表主键名, 同类型 → Vol.Pro自动关联 +-- 点位=子设备, 通过 Base_Device.ParentDeviceId 级联 -- ============================================ USE gljs_main; -- ============================================ -- 1. 统一设备主表 --- 子表通过 DeviceId(INT) 关联 +-- 采集器/摄像机=父设备(IsParent=1) 探头/通道=子设备(ParentDeviceId) -- ============================================ DROP TABLE IF EXISTS Base_Device; CREATE TABLE Base_Device ( @@ -20,7 +20,7 @@ CREATE TABLE Base_Device ( DeviceType NVARCHAR(50) COMMENT '设备细分类型', RegionId INT NULL COMMENT '所属区域ID', IsParent TINYINT NOT NULL DEFAULT 0 COMMENT '是否父设备(0叶子/1可展开)', - ParentDeviceId INT NULL COMMENT '父设备ID', + ParentDeviceId INT NULL COMMENT '父设备ID(自引用,子设备挂父设备下)', IsOnline TINYINT NOT NULL DEFAULT 0 COMMENT '在线状态(0离线/1在线)', IpAddress NVARCHAR(50) COMMENT 'IP地址', Port INT COMMENT '端口', @@ -58,7 +58,7 @@ CREATE TABLE Device_Video_Ext ( ExtId INT AUTO_INCREMENT COMMENT '扩展记录ID', DeviceId INT NOT NULL COMMENT '关联设备ID', OwlDeviceId NVARCHAR(64) NOT NULL COMMENT 'Owl系统设备ID', - Protocol INT DEFAULT 1 COMMENT '接入协议(1GB28181/2ONVIF/3RTMP/4RTSP)', + Protocol INT DEFAULT 1 COMMENT '接入协议', Manufacturer NVARCHAR(100) COMMENT '厂商', Model NVARCHAR(100) COMMENT '设备型号', ChannelCount INT DEFAULT 0 COMMENT '通道数量', @@ -70,33 +70,26 @@ CREATE TABLE Device_Video_Ext ( ) COMMENT '视频设备扩展表'; -- ============================================ --- 3. 视频通道表 --- DeviceId(INT) → Base_Device.DeviceId --- 子表: Video_Record.ChannelId(INT) → 本表.ChannelId +-- 3. 视频通道表(已废弃,通道=Base_Device子记录) +-- 保留此表给Owl专用:存Owl通道原始信息+流地址 +-- DeviceId(INT) → Base_Device.DeviceId -- ============================================ DROP TABLE IF EXISTS Video_Channel; CREATE TABLE Video_Channel ( - ChannelId INT AUTO_INCREMENT COMMENT '通道ID', + ChannelId INT AUTO_INCREMENT COMMENT '通道记录ID', OwlChannelId NVARCHAR(64) NOT NULL COMMENT 'Owl系统通道ID', - DeviceId INT NOT NULL COMMENT '关联父设备ID', - ChannelName NVARCHAR(100) NOT NULL COMMENT '通道名称', - ChannelNo INT DEFAULT 0 COMMENT '通道编号', + DeviceId INT NOT NULL COMMENT '关联Base_Device设备ID', OwlStreamApp NVARCHAR(50) COMMENT 'Owl流应用名', OwlStreamName NVARCHAR(100) COMMENT 'Owl流名称', HasPtz TINYINT DEFAULT 0 COMMENT '是否支持云台', HasRecording TINYINT DEFAULT 0 COMMENT '是否支持录像', - RecordMode INT DEFAULT 0 COMMENT '录像模式(0不录像/1设备/2中心)', - IsOnline TINYINT DEFAULT 0 COMMENT '在线状态', + RecordMode INT DEFAULT 0 COMMENT '录像模式', SnapshotUrl NVARCHAR(500) COMMENT '快照地址', - Location NVARCHAR(200) COMMENT '安装位置', - Lat DOUBLE COMMENT '纬度', - Lng DOUBLE COMMENT '经度', - Enable TINYINT DEFAULT 1 COMMENT '启用', CreateDate DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', PRIMARY KEY (ChannelId), INDEX IX_Device (DeviceId), INDEX IX_Owl (OwlChannelId) -) COMMENT '视频通道表'; +) COMMENT '视频通道Owl扩展信息表'; -- ============================================ -- 4. 录像记录表 @@ -121,14 +114,19 @@ CREATE TABLE Video_Record ( ) COMMENT '录像记录表'; -- ============================================ --- 5. IoT设备扩展表 +-- 5. IoT设备扩展表(含点位属性) -- DeviceId(INT) → Base_Device.DeviceId +-- 子设备(点位)的额外属性: PointIndex/Unit/IsControlPoint -- ============================================ DROP TABLE IF EXISTS Device_IoT_Ext; CREATE TABLE Device_IoT_Ext ( ExtId INT AUTO_INCREMENT COMMENT '扩展记录ID', DeviceId INT NOT NULL COMMENT '关联设备ID', Mc4DeviceId INT NOT NULL COMMENT 'MC4.0设备ID', + PointIndex INT DEFAULT 0 COMMENT '点位索引(子设备用)', + PointTag NVARCHAR(100) COMMENT '点位标签', + Unit NVARCHAR(50) COMMENT '单位(℃/%/V)', + IsControlPoint TINYINT DEFAULT 0 COMMENT '是否控制点(0只读/1可写)', ObjectType INT COMMENT 'MC4.0对象类型', Tag NVARCHAR(100) COMMENT '设备标签', ParentId INT COMMENT 'MC4.0父级ID', @@ -140,40 +138,13 @@ CREATE TABLE Device_IoT_Ext ( ) COMMENT '采集设备扩展表'; -- ============================================ --- 6. 设备点位表 --- DeviceId(INT) → Base_Device.DeviceId --- 子表: IoT_DeviceData.PointId(INT) → 本表.PointId --- ============================================ -DROP TABLE IF EXISTS IoT_DevicePoint; -CREATE TABLE IoT_DevicePoint ( - PointId INT AUTO_INCREMENT COMMENT '点位ID', - DeviceId INT NOT NULL COMMENT '关联设备ID', - Mc4DeviceId INT NOT NULL COMMENT 'MC4.0设备ID', - PointIndex INT NOT NULL COMMENT '点位索引', - PointType INT COMMENT '点位类型', - PointTag NVARCHAR(100) COMMENT '点位标签', - PointName NVARCHAR(100) NOT NULL COMMENT '点位名称', - PointDesc NVARCHAR(200) COMMENT '点位描述', - Unit NVARCHAR(50) COMMENT '单位', - IsControlPoint TINYINT DEFAULT 0 COMMENT '是否控制点', - Mc4Option NVARCHAR(500) COMMENT 'MC4.0原始配置JSON', - Enable TINYINT DEFAULT 1 COMMENT '启用', - CreateDate DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - PRIMARY KEY (PointId), - INDEX IX_Device (DeviceId), - INDEX IX_Mc4 (Mc4DeviceId, PointIndex) -) COMMENT '设备点位表'; - --- ============================================ --- 7. 设备数据归档表 --- DeviceId(INT) → Base_Device.DeviceId --- PointId(INT) → IoT_DevicePoint.PointId +-- 6. 设备数据归档表 +-- DeviceId(INT) → Base_Device.DeviceId(直接指向子设备/点位) -- ============================================ DROP TABLE IF EXISTS IoT_DeviceData; CREATE TABLE IoT_DeviceData ( DataId INT AUTO_INCREMENT COMMENT '数据记录ID', - DeviceId INT NOT NULL COMMENT '关联设备ID', - PointId INT NOT NULL COMMENT '关联点位ID', + DeviceId INT NOT NULL COMMENT '关联设备ID(子设备/点位)', PointValue DOUBLE COMMENT '点位数值', UpdateTime DATETIME NOT NULL COMMENT '数据更新时间', `Interval` INT DEFAULT 0 COMMENT '采集间隔(毫秒)', @@ -181,12 +152,11 @@ CREATE TABLE IoT_DeviceData ( CreateDate DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', PRIMARY KEY (DataId), INDEX IX_Device (DeviceId), - INDEX IX_Point (PointId), INDEX IX_Time (CreateDate) ) COMMENT '设备数据归档表'; -- ============================================ --- 8. 告警记录表(通用:视频/IoT/门禁均可产生) +-- 7. 告警记录表(通用) -- DeviceId(INT) → Base_Device.DeviceId -- ============================================ DROP TABLE IF EXISTS IoT_Alarm;