From 29fedc87013bff650d5f2a96e0d818dc5c1c70c9 Mon Sep 17 00:00:00 2001 From: g82tt Date: Fri, 15 May 2026 23:36:03 +0800 Subject: [PATCH] Phase0_db_init_comments --- doc/db_init.sql | 290 +++++++++++++++++++++++++++--------------------- 1 file changed, 161 insertions(+), 129 deletions(-) diff --git a/doc/db_init.sql b/doc/db_init.sql index a80030c..8ec6e16 100644 --- a/doc/db_init.sql +++ b/doc/db_init.sql @@ -1,168 +1,200 @@ - -- ============================================ -- SecMPS v2.0 数据库建表脚本 -- 数据库: gljs_main +-- 说明: 每个表和字段均包含 COMMENT 中文注释,供 Vol.Pro 代码生成器使用 -- ============================================ USE gljs_main; +-- ============================================ -- 1. 统一设备主表 -CREATE TABLE IF NOT EXISTS Base_Device ( - DeviceId CHAR(36) NOT NULL PRIMARY KEY, - DeviceName NVARCHAR(100) NOT NULL, - AdapterCode NVARCHAR(50) NOT NULL, - SourceId NVARCHAR(100) NOT NULL, - DeviceCategory INT NOT NULL DEFAULT 1, - DeviceType NVARCHAR(50), - RegionId INT NULL, - IsParent TINYINT NOT NULL DEFAULT 0, - ParentDeviceId CHAR(36) NULL, - IsOnline TINYINT NOT NULL DEFAULT 0, - IpAddress NVARCHAR(50), - Port INT, - Location NVARCHAR(200), - Lat DOUBLE, - Lng DOUBLE, - MapModelId NVARCHAR(100), - MapModelScale FLOAT DEFAULT 1.0, - MapModelRotation NVARCHAR(100), - ExtraData TEXT, - LocalOverrides TEXT, - SyncVersion BIGINT DEFAULT 0, - LastSyncTime DATETIME, - Enable TINYINT DEFAULT 1, - Remark NVARCHAR(500), - CreateID INT, - Creator NVARCHAR(50), - CreateDate DATETIME DEFAULT CURRENT_TIMESTAMP, - ModifyID INT, - Modifier NVARCHAR(50), - ModifyDate DATETIME, +-- ============================================ +DROP TABLE IF EXISTS Base_Device; +CREATE TABLE Base_Device ( + DeviceId CHAR(36) NOT NULL COMMENT '设备ID', + DeviceName NVARCHAR(100) NOT NULL COMMENT '设备名称', + AdapterCode NVARCHAR(50) NOT NULL COMMENT '来源适配器(owl/mc4)', + SourceId NVARCHAR(100) NOT NULL COMMENT '源系统设备ID', + DeviceCategory INT NOT NULL DEFAULT 1 COMMENT '设备大类(1视频/2IoT/3门禁/4道闸/5报警)', + DeviceType NVARCHAR(50) COMMENT '设备细分类型(GB28181/TempSensor)', + RegionId INT NULL COMMENT '所属区域ID', + IsParent TINYINT NOT NULL DEFAULT 0 COMMENT '是否父设备(0叶子/1可展开)', + ParentDeviceId CHAR(36) NULL COMMENT '父设备ID', + IsOnline TINYINT NOT NULL DEFAULT 0 COMMENT '在线状态(0离线/1在线)', + IpAddress NVARCHAR(50) COMMENT 'IP地址', + Port INT COMMENT '端口', + Location NVARCHAR(200) COMMENT '安装位置', + Lat DOUBLE COMMENT '纬度', + Lng DOUBLE COMMENT '经度', + MapModelId NVARCHAR(100) COMMENT '三维地图模型ID', + MapModelScale FLOAT DEFAULT 1.0 COMMENT '模型缩放比例', + MapModelRotation NVARCHAR(100) COMMENT '模型旋转角度(JSON)', + ExtraData TEXT COMMENT '源系统原始数据JSON', + LocalOverrides TEXT COMMENT '本地覆盖字段JSON', + SyncVersion BIGINT DEFAULT 0 COMMENT '同步版本号', + LastSyncTime DATETIME COMMENT '上次同步时间', + Enable TINYINT DEFAULT 1 COMMENT '启用(0禁用/1启用)', + Remark NVARCHAR(500) COMMENT '备注', + CreateID INT COMMENT '创建人ID', + Creator NVARCHAR(50) COMMENT '创建人', + CreateDate DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + ModifyID INT COMMENT '修改人ID', + Modifier NVARCHAR(50) COMMENT '修改人', + ModifyDate DATETIME COMMENT '修改时间', + PRIMARY KEY (DeviceId), UNIQUE INDEX IX_Base_Device_Adapter_Source (AdapterCode, SourceId), INDEX IX_Base_Device_RegionId (RegionId), INDEX IX_Base_Device_ParentId (ParentDeviceId) -); +) COMMENT '统一设备主表'; +-- ============================================ -- 2. 视频设备扩展表 -CREATE TABLE IF NOT EXISTS Device_Video_Ext ( - ExtId CHAR(36) NOT NULL PRIMARY KEY, - DeviceId CHAR(36) NOT NULL, - OwlDeviceId NVARCHAR(64) NOT NULL, - Protocol INT DEFAULT 1, - Manufacturer NVARCHAR(100), - Model NVARCHAR(100), - ChannelCount INT DEFAULT 0, - OwlStatus NVARCHAR(500), - CreateDate DATETIME DEFAULT CURRENT_TIMESTAMP, +-- ============================================ +DROP TABLE IF EXISTS Device_Video_Ext; +CREATE TABLE Device_Video_Ext ( + ExtId CHAR(36) NOT NULL COMMENT '扩展记录ID', + DeviceId CHAR(36) NOT NULL COMMENT '关联设备ID', + OwlDeviceId NVARCHAR(64) NOT NULL COMMENT 'Owl系统设备ID', + Protocol INT DEFAULT 1 COMMENT '接入协议(1GB28181/2ONVIF/3RTMP/4RTSP)', + Manufacturer NVARCHAR(100) COMMENT '厂商', + Model NVARCHAR(100) COMMENT '设备型号', + ChannelCount INT DEFAULT 0 COMMENT '通道数量', + OwlStatus NVARCHAR(500) COMMENT 'Owl原始状态JSON', + CreateDate DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + PRIMARY KEY (ExtId), UNIQUE INDEX IX_VideoExt_Owl (OwlDeviceId), INDEX IX_VideoExt_Device (DeviceId) -); +) COMMENT '视频设备扩展表'; +-- ============================================ -- 3. 视频通道表 -CREATE TABLE IF NOT EXISTS Video_Channel ( - ChannelId CHAR(36) NOT NULL PRIMARY KEY, - OwlChannelId NVARCHAR(64) NOT NULL, - DeviceId CHAR(36) NOT NULL, - ChannelName NVARCHAR(100) NOT NULL, - ChannelNo INT DEFAULT 0, - OwlStreamApp NVARCHAR(50), - OwlStreamName NVARCHAR(100), - HasPtz TINYINT DEFAULT 0, - HasRecording TINYINT DEFAULT 0, - RecordMode INT DEFAULT 0, - IsOnline TINYINT DEFAULT 0, - SnapshotUrl NVARCHAR(500), - Location NVARCHAR(200), - Lat DOUBLE, - Lng DOUBLE, - Enable TINYINT DEFAULT 1, - CreateDate DATETIME DEFAULT CURRENT_TIMESTAMP, +-- ============================================ +DROP TABLE IF EXISTS Video_Channel; +CREATE TABLE Video_Channel ( + ChannelId CHAR(36) NOT NULL COMMENT '通道ID', + OwlChannelId NVARCHAR(64) NOT NULL COMMENT 'Owl系统通道ID', + DeviceId CHAR(36) NOT NULL COMMENT '关联父设备ID', + ChannelName NVARCHAR(100) NOT NULL COMMENT '通道名称', + ChannelNo INT DEFAULT 0 COMMENT '通道编号', + OwlStreamApp NVARCHAR(50) COMMENT 'Owl流应用名', + OwlStreamName NVARCHAR(100) COMMENT 'Owl流名称', + HasPtz TINYINT DEFAULT 0 COMMENT '是否支持云台(0否/1是)', + HasRecording TINYINT DEFAULT 0 COMMENT '是否支持录像(0否/1是)', + RecordMode INT DEFAULT 0 COMMENT '录像模式(0不录像/1设备录像/2中心录像)', + IsOnline TINYINT DEFAULT 0 COMMENT '在线状态(0离线/1在线)', + SnapshotUrl NVARCHAR(500) COMMENT '快照地址', + Location NVARCHAR(200) COMMENT '安装位置', + Lat DOUBLE COMMENT '纬度', + Lng DOUBLE COMMENT '经度', + Enable TINYINT DEFAULT 1 COMMENT '启用(0禁用/1启用)', + CreateDate DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + PRIMARY KEY (ChannelId), UNIQUE INDEX IX_Channel_Owl (OwlChannelId), INDEX IX_Channel_Device (DeviceId) -); +) COMMENT '视频通道表'; +-- ============================================ -- 4. 录像记录表 -CREATE TABLE IF NOT EXISTS Video_Record ( - RecordId CHAR(36) NOT NULL PRIMARY KEY, - ChannelId CHAR(36) NOT NULL, - OwlRecordId INT NOT NULL, - App NVARCHAR(50), - Stream NVARCHAR(100), - StartedAt DATETIME NOT NULL, - EndedAt DATETIME, - Duration DOUBLE DEFAULT 0, - FilePath NVARCHAR(500), - FileSize BIGINT DEFAULT 0, - CreateDate DATETIME DEFAULT CURRENT_TIMESTAMP, +-- ============================================ +DROP TABLE IF EXISTS Video_Record; +CREATE TABLE Video_Record ( + RecordId CHAR(36) NOT NULL COMMENT '录像记录ID', + ChannelId CHAR(36) NOT NULL COMMENT '关联通道ID', + OwlRecordId INT NOT NULL COMMENT 'Owl录像记录ID', + App NVARCHAR(50) COMMENT '应用名', + Stream NVARCHAR(100) COMMENT '流ID', + StartedAt DATETIME NOT NULL COMMENT '录像开始时间', + EndedAt DATETIME COMMENT '录像结束时间', + Duration DOUBLE DEFAULT 0 COMMENT '录像时长(秒)', + FilePath NVARCHAR(500) COMMENT '文件路径', + FileSize BIGINT DEFAULT 0 COMMENT '文件大小(字节)', + CreateDate DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + PRIMARY KEY (RecordId), INDEX IX_Record_Channel (ChannelId), INDEX IX_Record_Time (StartedAt) -); +) COMMENT '录像记录表'; +-- ============================================ -- 5. IoT设备扩展表 -CREATE TABLE IF NOT EXISTS Device_IoT_Ext ( - ExtId CHAR(36) NOT NULL PRIMARY KEY, - DeviceId CHAR(36) NOT NULL, - Mc4DeviceId INT NOT NULL, - ObjectType INT, - Tag NVARCHAR(100), - ParentId INT, - Mc4Option NVARCHAR(500), - CreateDate DATETIME DEFAULT CURRENT_TIMESTAMP, +-- ============================================ +DROP TABLE IF EXISTS Device_IoT_Ext; +CREATE TABLE Device_IoT_Ext ( + ExtId CHAR(36) NOT NULL COMMENT '扩展记录ID', + DeviceId CHAR(36) NOT NULL COMMENT '关联设备ID', + Mc4DeviceId INT NOT NULL COMMENT 'MC4.0设备ID', + ObjectType INT COMMENT 'MC4.0对象类型', + Tag NVARCHAR(100) COMMENT '设备标签', + ParentId INT COMMENT 'MC4.0父级ID', + Mc4Option NVARCHAR(500) COMMENT 'MC4.0原始配置JSON', + CreateDate DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + PRIMARY KEY (ExtId), UNIQUE INDEX IX_IoTExt_Mc4 (Mc4DeviceId), INDEX IX_IoTExt_Device (DeviceId) -); +) COMMENT '采集设备扩展表'; +-- ============================================ -- 6. 设备点位表 -CREATE TABLE IF NOT EXISTS IoT_DevicePoint ( - PointId CHAR(36) NOT NULL PRIMARY KEY, - DeviceId CHAR(36) NOT NULL, - Mc4DeviceId INT NOT NULL, - PointIndex INT NOT NULL, - PointType INT, - PointTag NVARCHAR(100), - PointName NVARCHAR(100) NOT NULL, - PointDesc NVARCHAR(200), - Unit NVARCHAR(50), - IsControlPoint TINYINT DEFAULT 0, - Mc4Option NVARCHAR(500), - Enable TINYINT DEFAULT 1, - CreateDate DATETIME DEFAULT CURRENT_TIMESTAMP, +-- ============================================ +DROP TABLE IF EXISTS IoT_DevicePoint; +CREATE TABLE IoT_DevicePoint ( + PointId CHAR(36) NOT NULL COMMENT '点位ID', + DeviceId CHAR(36) 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 '单位(℃/%/V)', + IsControlPoint TINYINT DEFAULT 0 COMMENT '是否控制点(0只读/1可写)', + Mc4Option NVARCHAR(500) COMMENT 'MC4.0原始配置JSON', + Enable TINYINT DEFAULT 1 COMMENT '启用(0禁用/1启用)', + CreateDate DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + PRIMARY KEY (PointId), UNIQUE INDEX IX_Point_Mc4 (Mc4DeviceId, PointIndex), INDEX IX_Point_Device (DeviceId) -); +) COMMENT '设备点位表'; --- 7. 设备数据归档表(仅存快照,实时不入库) -CREATE TABLE IF NOT EXISTS IoT_DeviceData ( - DataId CHAR(36) NOT NULL PRIMARY KEY, - DeviceId CHAR(36) NOT NULL, - PointId CHAR(36) NOT NULL, - PointValue DOUBLE, - UpdateTime DATETIME NOT NULL, - `Interval` INT DEFAULT 0, - ArchiveType INT DEFAULT 1, - CreateDate DATETIME DEFAULT CURRENT_TIMESTAMP, +-- ============================================ +-- 7. 设备数据归档表(仅存历史快照,实时数据不入库) +-- ============================================ +DROP TABLE IF EXISTS IoT_DeviceData; +CREATE TABLE IoT_DeviceData ( + DataId CHAR(36) NOT NULL COMMENT '数据记录ID', + DeviceId CHAR(36) NOT NULL COMMENT '关联设备ID', + PointId CHAR(36) NOT NULL COMMENT '关联点位ID', + PointValue DOUBLE COMMENT '点位数值', + UpdateTime DATETIME NOT NULL COMMENT '数据更新时间', + `Interval` INT DEFAULT 0 COMMENT '采集间隔(毫秒)', + ArchiveType INT DEFAULT 1 COMMENT '归档类型(1小时/2日)', + CreateDate DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + PRIMARY KEY (DataId), INDEX IX_Data_Device (DeviceId), INDEX IX_Data_Time (CreateDate) -); +) COMMENT '设备数据归档表(仅存历史快照)'; +-- ============================================ -- 8. 告警记录表 -CREATE TABLE IF NOT EXISTS IoT_Alarm ( - AlarmId CHAR(36) NOT NULL PRIMARY KEY, - Mc4AlarmId NVARCHAR(64) NOT NULL, - DeviceId CHAR(36), - PointId CHAR(36), - AlarmType INT DEFAULT 0, - AlarmLevel INT DEFAULT 1, - AlarmDesc NVARCHAR(500), - AlarmValue DOUBLE, - StartTime DATETIME NOT NULL, - EndTime DATETIME, - ConfirmTime DATETIME, - ConfirmUser NVARCHAR(50), - State INT DEFAULT 1, - AdapterCode NVARCHAR(50), - CreateDate DATETIME DEFAULT CURRENT_TIMESTAMP, +-- ============================================ +DROP TABLE IF EXISTS IoT_Alarm; +CREATE TABLE IoT_Alarm ( + AlarmId CHAR(36) NOT NULL COMMENT '告警ID', + Mc4AlarmId NVARCHAR(64) NOT NULL COMMENT 'MC4.0告警ID', + DeviceId CHAR(36) COMMENT '关联设备ID', + PointId CHAR(36) COMMENT '关联点位ID', + AlarmType INT DEFAULT 0 COMMENT '告警类型', + AlarmLevel INT DEFAULT 1 COMMENT '告警等级(1提示/2普通/3重要/4紧急)', + AlarmDesc NVARCHAR(500) COMMENT '告警描述', + AlarmValue DOUBLE COMMENT '触发值', + StartTime DATETIME NOT NULL COMMENT '告警开始时间', + EndTime DATETIME COMMENT '告警结束时间', + ConfirmTime DATETIME COMMENT '确认时间', + ConfirmUser NVARCHAR(50) COMMENT '确认人', + State INT DEFAULT 1 COMMENT '状态(1未确认/2已确认/3已结束)', + AdapterCode NVARCHAR(50) COMMENT '来源适配器', + CreateDate DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + PRIMARY KEY (AlarmId), UNIQUE INDEX IX_Alarm_Mc4 (Mc4AlarmId), INDEX IX_Alarm_Device (DeviceId), INDEX IX_Alarm_Time (StartTime) -); +) COMMENT '告警记录表';