Phase0_no_constraints_index_only
This commit is contained in:
@@ -1,22 +1,23 @@
|
|||||||
-- ============================================
|
-- ============================================
|
||||||
-- SecMPS v2.0 数据库建表脚本
|
-- SecMPS v2.0 数据库建表脚本
|
||||||
-- 数据库: gljs_main
|
-- 数据库: gljs_main
|
||||||
-- 所有主键: INT AUTO_INCREMENT
|
-- 关联规则: 子表字段名=主表主键名, 同类型 → Vol.Pro自动关联
|
||||||
-- ============================================
|
-- ============================================
|
||||||
|
|
||||||
USE gljs_main;
|
USE gljs_main;
|
||||||
|
|
||||||
-- ============================================
|
-- ============================================
|
||||||
-- 1. 统一设备主表(★中心枢纽)
|
-- 1. 统一设备主表
|
||||||
|
-- 子表通过 DeviceId(INT) 关联
|
||||||
-- ============================================
|
-- ============================================
|
||||||
DROP TABLE IF EXISTS Base_Device;
|
DROP TABLE IF EXISTS Base_Device;
|
||||||
CREATE TABLE Base_Device (
|
CREATE TABLE Base_Device (
|
||||||
DeviceId INT AUTO_INCREMENT COMMENT '设备ID',
|
DeviceId INT AUTO_INCREMENT COMMENT '设备ID',
|
||||||
DeviceName NVARCHAR(100) NOT NULL COMMENT '设备名称',
|
DeviceName NVARCHAR(100) NOT NULL COMMENT '设备名称',
|
||||||
AdapterCode NVARCHAR(50) NOT NULL COMMENT '来源适配器(owl/mc4/hikvision_access)',
|
AdapterCode NVARCHAR(50) NOT NULL COMMENT '来源适配器',
|
||||||
SourceId NVARCHAR(100) NOT NULL COMMENT '源系统设备ID',
|
SourceId NVARCHAR(100) NOT NULL COMMENT '源系统设备ID',
|
||||||
DeviceCategory INT NOT NULL DEFAULT 1 COMMENT '设备大类(1视频/2IoT/3门禁/4道闸/5报警)',
|
DeviceCategory INT NOT NULL DEFAULT 1 COMMENT '设备大类(1视频/2IoT/3门禁/4道闸/5报警)',
|
||||||
DeviceType NVARCHAR(50) COMMENT '设备细分类型(GB28181/TempSensor)',
|
DeviceType NVARCHAR(50) COMMENT '设备细分类型',
|
||||||
RegionId INT NULL COMMENT '所属区域ID',
|
RegionId INT NULL COMMENT '所属区域ID',
|
||||||
IsParent TINYINT NOT NULL DEFAULT 0 COMMENT '是否父设备(0叶子/1可展开)',
|
IsParent TINYINT NOT NULL DEFAULT 0 COMMENT '是否父设备(0叶子/1可展开)',
|
||||||
ParentDeviceId INT NULL COMMENT '父设备ID',
|
ParentDeviceId INT NULL COMMENT '父设备ID',
|
||||||
@@ -42,19 +43,20 @@ CREATE TABLE Base_Device (
|
|||||||
Modifier NVARCHAR(50) COMMENT '修改人',
|
Modifier NVARCHAR(50) COMMENT '修改人',
|
||||||
ModifyDate DATETIME COMMENT '修改时间',
|
ModifyDate DATETIME COMMENT '修改时间',
|
||||||
PRIMARY KEY (DeviceId),
|
PRIMARY KEY (DeviceId),
|
||||||
UNIQUE INDEX IX_Base_Device_Adapter_Source (AdapterCode, SourceId),
|
INDEX IX_Sync (AdapterCode, SourceId),
|
||||||
INDEX IX_Base_Device_RegionId (RegionId),
|
INDEX IX_Region (RegionId),
|
||||||
INDEX IX_Base_Device_ParentId (ParentDeviceId),
|
INDEX IX_Parent (ParentDeviceId),
|
||||||
INDEX IX_Base_Device_Category (DeviceCategory)
|
INDEX IX_Category (DeviceCategory)
|
||||||
) COMMENT '统一设备主表';
|
) COMMENT '统一设备主表';
|
||||||
|
|
||||||
-- ============================================
|
-- ============================================
|
||||||
-- 2. 视频设备扩展表
|
-- 2. 视频设备扩展表
|
||||||
|
-- DeviceId(INT) → Base_Device.DeviceId
|
||||||
-- ============================================
|
-- ============================================
|
||||||
DROP TABLE IF EXISTS Device_Video_Ext;
|
DROP TABLE IF EXISTS Device_Video_Ext;
|
||||||
CREATE TABLE Device_Video_Ext (
|
CREATE TABLE Device_Video_Ext (
|
||||||
ExtId INT AUTO_INCREMENT COMMENT '扩展记录ID',
|
ExtId INT AUTO_INCREMENT COMMENT '扩展记录ID',
|
||||||
DeviceId INT NOT NULL COMMENT '关联设备ID(Base_Device)',
|
DeviceId INT NOT NULL COMMENT '关联设备ID',
|
||||||
OwlDeviceId NVARCHAR(64) NOT NULL COMMENT 'Owl系统设备ID',
|
OwlDeviceId NVARCHAR(64) NOT NULL COMMENT 'Owl系统设备ID',
|
||||||
Protocol INT DEFAULT 1 COMMENT '接入协议(1GB28181/2ONVIF/3RTMP/4RTSP)',
|
Protocol INT DEFAULT 1 COMMENT '接入协议(1GB28181/2ONVIF/3RTMP/4RTSP)',
|
||||||
Manufacturer NVARCHAR(100) COMMENT '厂商',
|
Manufacturer NVARCHAR(100) COMMENT '厂商',
|
||||||
@@ -63,44 +65,47 @@ CREATE TABLE Device_Video_Ext (
|
|||||||
OwlStatus NVARCHAR(500) COMMENT 'Owl原始状态JSON',
|
OwlStatus NVARCHAR(500) COMMENT 'Owl原始状态JSON',
|
||||||
CreateDate DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
CreateDate DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
PRIMARY KEY (ExtId),
|
PRIMARY KEY (ExtId),
|
||||||
UNIQUE INDEX IX_VideoExt_Owl (OwlDeviceId),
|
INDEX IX_Device (DeviceId),
|
||||||
UNIQUE INDEX IX_VideoExt_Device (DeviceId)
|
INDEX IX_Owl (OwlDeviceId)
|
||||||
) COMMENT '视频设备扩展表';
|
) COMMENT '视频设备扩展表';
|
||||||
|
|
||||||
-- ============================================
|
-- ============================================
|
||||||
-- 3. 视频通道表
|
-- 3. 视频通道表
|
||||||
|
-- DeviceId(INT) → Base_Device.DeviceId
|
||||||
|
-- 子表: Video_Record.ChannelId(INT) → 本表.ChannelId
|
||||||
-- ============================================
|
-- ============================================
|
||||||
DROP TABLE IF EXISTS Video_Channel;
|
DROP TABLE IF EXISTS Video_Channel;
|
||||||
CREATE TABLE 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',
|
OwlChannelId NVARCHAR(64) NOT NULL COMMENT 'Owl系统通道ID',
|
||||||
DeviceId INT NOT NULL COMMENT '关联父设备ID(Base_Device)',
|
DeviceId INT NOT NULL COMMENT '关联父设备ID',
|
||||||
ChannelName NVARCHAR(100) NOT NULL COMMENT '通道名称',
|
ChannelName NVARCHAR(100) NOT NULL COMMENT '通道名称',
|
||||||
ChannelNo INT DEFAULT 0 COMMENT '通道编号',
|
ChannelNo INT DEFAULT 0 COMMENT '通道编号',
|
||||||
OwlStreamApp NVARCHAR(50) COMMENT 'Owl流应用名',
|
OwlStreamApp NVARCHAR(50) COMMENT 'Owl流应用名',
|
||||||
OwlStreamName NVARCHAR(100) COMMENT 'Owl流名称',
|
OwlStreamName NVARCHAR(100) COMMENT 'Owl流名称',
|
||||||
HasPtz TINYINT DEFAULT 0 COMMENT '是否支持云台(0否/1是)',
|
HasPtz TINYINT DEFAULT 0 COMMENT '是否支持云台',
|
||||||
HasRecording TINYINT DEFAULT 0 COMMENT '是否支持录像(0否/1是)',
|
HasRecording TINYINT DEFAULT 0 COMMENT '是否支持录像',
|
||||||
RecordMode INT DEFAULT 0 COMMENT '录像模式(0不录像/1设备录像/2中心录像)',
|
RecordMode INT DEFAULT 0 COMMENT '录像模式(0不录像/1设备/2中心)',
|
||||||
IsOnline TINYINT DEFAULT 0 COMMENT '在线状态(0离线/1在线)',
|
IsOnline TINYINT DEFAULT 0 COMMENT '在线状态',
|
||||||
SnapshotUrl NVARCHAR(500) COMMENT '快照地址',
|
SnapshotUrl NVARCHAR(500) COMMENT '快照地址',
|
||||||
Location NVARCHAR(200) COMMENT '安装位置',
|
Location NVARCHAR(200) COMMENT '安装位置',
|
||||||
Lat DOUBLE COMMENT '纬度',
|
Lat DOUBLE COMMENT '纬度',
|
||||||
Lng DOUBLE COMMENT '经度',
|
Lng DOUBLE COMMENT '经度',
|
||||||
Enable TINYINT DEFAULT 1 COMMENT '启用(0禁用/1启用)',
|
Enable TINYINT DEFAULT 1 COMMENT '启用',
|
||||||
CreateDate DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
CreateDate DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
PRIMARY KEY (ChannelId),
|
PRIMARY KEY (ChannelId),
|
||||||
UNIQUE INDEX IX_Channel_Owl (OwlChannelId),
|
INDEX IX_Device (DeviceId),
|
||||||
INDEX IX_Channel_Device (DeviceId)
|
INDEX IX_Owl (OwlChannelId)
|
||||||
) COMMENT '视频通道表';
|
) COMMENT '视频通道表';
|
||||||
|
|
||||||
-- ============================================
|
-- ============================================
|
||||||
-- 4. 录像记录表
|
-- 4. 录像记录表
|
||||||
|
-- ChannelId(INT) → Video_Channel.ChannelId
|
||||||
-- ============================================
|
-- ============================================
|
||||||
DROP TABLE IF EXISTS Video_Record;
|
DROP TABLE IF EXISTS Video_Record;
|
||||||
CREATE TABLE Video_Record (
|
CREATE TABLE Video_Record (
|
||||||
RecordId INT AUTO_INCREMENT COMMENT '录像记录ID',
|
RecordId INT AUTO_INCREMENT COMMENT '录像记录ID',
|
||||||
ChannelId INT NOT NULL COMMENT '关联通道ID(Video_Channel)',
|
ChannelId INT NOT NULL COMMENT '关联通道ID',
|
||||||
OwlRecordId INT NOT NULL COMMENT 'Owl录像记录ID',
|
OwlRecordId INT NOT NULL COMMENT 'Owl录像记录ID',
|
||||||
App NVARCHAR(50) COMMENT '应用名',
|
App NVARCHAR(50) COMMENT '应用名',
|
||||||
Stream NVARCHAR(100) COMMENT '流ID',
|
Stream NVARCHAR(100) COMMENT '流ID',
|
||||||
@@ -111,17 +116,18 @@ CREATE TABLE Video_Record (
|
|||||||
FileSize BIGINT DEFAULT 0 COMMENT '文件大小(字节)',
|
FileSize BIGINT DEFAULT 0 COMMENT '文件大小(字节)',
|
||||||
CreateDate DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
CreateDate DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
PRIMARY KEY (RecordId),
|
PRIMARY KEY (RecordId),
|
||||||
INDEX IX_Record_Channel (ChannelId),
|
INDEX IX_Channel (ChannelId),
|
||||||
INDEX IX_Record_Time (StartedAt)
|
INDEX IX_Time (StartedAt)
|
||||||
) COMMENT '录像记录表';
|
) COMMENT '录像记录表';
|
||||||
|
|
||||||
-- ============================================
|
-- ============================================
|
||||||
-- 5. IoT设备扩展表
|
-- 5. IoT设备扩展表
|
||||||
|
-- DeviceId(INT) → Base_Device.DeviceId
|
||||||
-- ============================================
|
-- ============================================
|
||||||
DROP TABLE IF EXISTS Device_IoT_Ext;
|
DROP TABLE IF EXISTS Device_IoT_Ext;
|
||||||
CREATE TABLE Device_IoT_Ext (
|
CREATE TABLE Device_IoT_Ext (
|
||||||
ExtId INT AUTO_INCREMENT COMMENT '扩展记录ID',
|
ExtId INT AUTO_INCREMENT COMMENT '扩展记录ID',
|
||||||
DeviceId INT NOT NULL COMMENT '关联设备ID(Base_Device)',
|
DeviceId INT NOT NULL COMMENT '关联设备ID',
|
||||||
Mc4DeviceId INT NOT NULL COMMENT 'MC4.0设备ID',
|
Mc4DeviceId INT NOT NULL COMMENT 'MC4.0设备ID',
|
||||||
ObjectType INT COMMENT 'MC4.0对象类型',
|
ObjectType INT COMMENT 'MC4.0对象类型',
|
||||||
Tag NVARCHAR(100) COMMENT '设备标签',
|
Tag NVARCHAR(100) COMMENT '设备标签',
|
||||||
@@ -129,60 +135,65 @@ CREATE TABLE Device_IoT_Ext (
|
|||||||
Mc4Option NVARCHAR(500) COMMENT 'MC4.0原始配置JSON',
|
Mc4Option NVARCHAR(500) COMMENT 'MC4.0原始配置JSON',
|
||||||
CreateDate DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
CreateDate DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
PRIMARY KEY (ExtId),
|
PRIMARY KEY (ExtId),
|
||||||
UNIQUE INDEX IX_IoTExt_Mc4 (Mc4DeviceId),
|
INDEX IX_Device (DeviceId),
|
||||||
UNIQUE INDEX IX_IoTExt_Device (DeviceId)
|
INDEX IX_Mc4 (Mc4DeviceId)
|
||||||
) COMMENT '采集设备扩展表';
|
) COMMENT '采集设备扩展表';
|
||||||
|
|
||||||
-- ============================================
|
-- ============================================
|
||||||
-- 6. 设备点位表
|
-- 6. 设备点位表
|
||||||
|
-- DeviceId(INT) → Base_Device.DeviceId
|
||||||
|
-- 子表: IoT_DeviceData.PointId(INT) → 本表.PointId
|
||||||
-- ============================================
|
-- ============================================
|
||||||
DROP TABLE IF EXISTS IoT_DevicePoint;
|
DROP TABLE IF EXISTS IoT_DevicePoint;
|
||||||
CREATE TABLE IoT_DevicePoint (
|
CREATE TABLE IoT_DevicePoint (
|
||||||
PointId INT AUTO_INCREMENT COMMENT '点位ID',
|
PointId INT AUTO_INCREMENT COMMENT '点位ID',
|
||||||
DeviceId INT NOT NULL COMMENT '关联设备ID(Base_Device)',
|
DeviceId INT NOT NULL COMMENT '关联设备ID',
|
||||||
Mc4DeviceId INT NOT NULL COMMENT 'MC4.0设备ID',
|
Mc4DeviceId INT NOT NULL COMMENT 'MC4.0设备ID',
|
||||||
PointIndex INT NOT NULL COMMENT '点位索引',
|
PointIndex INT NOT NULL COMMENT '点位索引',
|
||||||
PointType INT COMMENT '点位类型',
|
PointType INT COMMENT '点位类型',
|
||||||
PointTag NVARCHAR(100) COMMENT '点位标签',
|
PointTag NVARCHAR(100) COMMENT '点位标签',
|
||||||
PointName NVARCHAR(100) NOT NULL COMMENT '点位名称',
|
PointName NVARCHAR(100) NOT NULL COMMENT '点位名称',
|
||||||
PointDesc NVARCHAR(200) COMMENT '点位描述',
|
PointDesc NVARCHAR(200) COMMENT '点位描述',
|
||||||
Unit NVARCHAR(50) COMMENT '单位(℃/%/V)',
|
Unit NVARCHAR(50) COMMENT '单位',
|
||||||
IsControlPoint TINYINT DEFAULT 0 COMMENT '是否控制点(0只读/1可写)',
|
IsControlPoint TINYINT DEFAULT 0 COMMENT '是否控制点',
|
||||||
Mc4Option NVARCHAR(500) COMMENT 'MC4.0原始配置JSON',
|
Mc4Option NVARCHAR(500) COMMENT 'MC4.0原始配置JSON',
|
||||||
Enable TINYINT DEFAULT 1 COMMENT '启用(0禁用/1启用)',
|
Enable TINYINT DEFAULT 1 COMMENT '启用',
|
||||||
CreateDate DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
CreateDate DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
PRIMARY KEY (PointId),
|
PRIMARY KEY (PointId),
|
||||||
UNIQUE INDEX IX_Point_Mc4 (Mc4DeviceId, PointIndex),
|
INDEX IX_Device (DeviceId),
|
||||||
INDEX IX_Point_Device (DeviceId)
|
INDEX IX_Mc4 (Mc4DeviceId, PointIndex)
|
||||||
) COMMENT '设备点位表';
|
) COMMENT '设备点位表';
|
||||||
|
|
||||||
-- ============================================
|
-- ============================================
|
||||||
-- 7. 设备数据归档表
|
-- 7. 设备数据归档表
|
||||||
|
-- DeviceId(INT) → Base_Device.DeviceId
|
||||||
|
-- PointId(INT) → IoT_DevicePoint.PointId
|
||||||
-- ============================================
|
-- ============================================
|
||||||
DROP TABLE IF EXISTS IoT_DeviceData;
|
DROP TABLE IF EXISTS IoT_DeviceData;
|
||||||
CREATE TABLE IoT_DeviceData (
|
CREATE TABLE IoT_DeviceData (
|
||||||
DataId INT AUTO_INCREMENT COMMENT '数据记录ID',
|
DataId INT AUTO_INCREMENT COMMENT '数据记录ID',
|
||||||
DeviceId INT NOT NULL COMMENT '关联设备ID(Base_Device)',
|
DeviceId INT NOT NULL COMMENT '关联设备ID',
|
||||||
PointId INT NOT NULL COMMENT '关联点位ID(IoT_DevicePoint)',
|
PointId INT NOT NULL COMMENT '关联点位ID',
|
||||||
PointValue DOUBLE COMMENT '点位数值',
|
PointValue DOUBLE COMMENT '点位数值',
|
||||||
UpdateTime DATETIME NOT NULL COMMENT '数据更新时间',
|
UpdateTime DATETIME NOT NULL COMMENT '数据更新时间',
|
||||||
`Interval` INT DEFAULT 0 COMMENT '采集间隔(毫秒)',
|
`Interval` INT DEFAULT 0 COMMENT '采集间隔(毫秒)',
|
||||||
ArchiveType INT DEFAULT 1 COMMENT '归档类型(1小时/2日)',
|
ArchiveType INT DEFAULT 1 COMMENT '归档类型(1小时/2日)',
|
||||||
CreateDate DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
CreateDate DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
PRIMARY KEY (DataId),
|
PRIMARY KEY (DataId),
|
||||||
INDEX IX_Data_Device (DeviceId),
|
INDEX IX_Device (DeviceId),
|
||||||
INDEX IX_Data_Point (PointId),
|
INDEX IX_Point (PointId),
|
||||||
INDEX IX_Data_Time (CreateDate)
|
INDEX IX_Time (CreateDate)
|
||||||
) COMMENT '设备数据归档表(仅存历史快照)';
|
) COMMENT '设备数据归档表';
|
||||||
|
|
||||||
-- ============================================
|
-- ============================================
|
||||||
-- 8. 告警记录表(★通用,视频/IoT/门禁均可产生)
|
-- 8. 告警记录表(通用:视频/IoT/门禁均可产生)
|
||||||
|
-- DeviceId(INT) → Base_Device.DeviceId
|
||||||
-- ============================================
|
-- ============================================
|
||||||
DROP TABLE IF EXISTS IoT_Alarm;
|
DROP TABLE IF EXISTS IoT_Alarm;
|
||||||
CREATE TABLE IoT_Alarm (
|
CREATE TABLE IoT_Alarm (
|
||||||
AlarmId INT AUTO_INCREMENT COMMENT '告警ID',
|
AlarmId INT AUTO_INCREMENT COMMENT '告警ID',
|
||||||
SourceAlarmId NVARCHAR(100) NOT NULL COMMENT '源系统告警ID',
|
SourceAlarmId NVARCHAR(100) NOT NULL COMMENT '源系统告警ID',
|
||||||
DeviceId INT NOT NULL COMMENT '关联设备ID(Base_Device)',
|
DeviceId INT NOT NULL COMMENT '关联设备ID',
|
||||||
AlarmType INT DEFAULT 0 COMMENT '告警类型',
|
AlarmType INT DEFAULT 0 COMMENT '告警类型',
|
||||||
AlarmLevel INT DEFAULT 1 COMMENT '告警等级(1提示/2普通/3重要/4紧急)',
|
AlarmLevel INT DEFAULT 1 COMMENT '告警等级(1提示/2普通/3重要/4紧急)',
|
||||||
AlarmDesc NVARCHAR(500) COMMENT '告警描述',
|
AlarmDesc NVARCHAR(500) COMMENT '告警描述',
|
||||||
@@ -195,8 +206,8 @@ CREATE TABLE IoT_Alarm (
|
|||||||
AdapterCode NVARCHAR(50) COMMENT '来源适配器',
|
AdapterCode NVARCHAR(50) COMMENT '来源适配器',
|
||||||
CreateDate DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
CreateDate DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
PRIMARY KEY (AlarmId),
|
PRIMARY KEY (AlarmId),
|
||||||
UNIQUE INDEX IX_Alarm_Source (SourceAlarmId),
|
INDEX IX_Device (DeviceId),
|
||||||
INDEX IX_Alarm_Device (DeviceId),
|
INDEX IX_Source (SourceAlarmId),
|
||||||
INDEX IX_Alarm_Time (StartTime),
|
INDEX IX_Time (StartTime),
|
||||||
INDEX IX_Alarm_Level (AlarmLevel)
|
INDEX IX_Level (AlarmLevel)
|
||||||
) COMMENT '告警记录表';
|
) COMMENT '告警记录表';
|
||||||
|
|||||||
Reference in New Issue
Block a user