Phase0_db_init_comments
This commit is contained in:
290
doc/db_init.sql
290
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 '告警记录表';
|
||||
|
||||
Reference in New Issue
Block a user