169 lines
5.6 KiB
SQL
169 lines
5.6 KiB
SQL
|
|
-- ============================================
|
|
-- SecMPS v2.0 数据库建表脚本
|
|
-- 数据库: gljs_main
|
|
-- ============================================
|
|
|
|
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,
|
|
UNIQUE INDEX IX_Base_Device_Adapter_Source (AdapterCode, SourceId),
|
|
INDEX IX_Base_Device_RegionId (RegionId),
|
|
INDEX IX_Base_Device_ParentId (ParentDeviceId)
|
|
);
|
|
|
|
-- 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,
|
|
UNIQUE INDEX IX_VideoExt_Owl (OwlDeviceId),
|
|
INDEX IX_VideoExt_Device (DeviceId)
|
|
);
|
|
|
|
-- 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,
|
|
UNIQUE INDEX IX_Channel_Owl (OwlChannelId),
|
|
INDEX IX_Channel_Device (DeviceId)
|
|
);
|
|
|
|
-- 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,
|
|
INDEX IX_Record_Channel (ChannelId),
|
|
INDEX IX_Record_Time (StartedAt)
|
|
);
|
|
|
|
-- 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,
|
|
UNIQUE INDEX IX_IoTExt_Mc4 (Mc4DeviceId),
|
|
INDEX IX_IoTExt_Device (DeviceId)
|
|
);
|
|
|
|
-- 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,
|
|
UNIQUE INDEX IX_Point_Mc4 (Mc4DeviceId, PointIndex),
|
|
INDEX IX_Point_Device (DeviceId)
|
|
);
|
|
|
|
-- 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,
|
|
INDEX IX_Data_Device (DeviceId),
|
|
INDEX IX_Data_Time (CreateDate)
|
|
);
|
|
|
|
-- 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,
|
|
UNIQUE INDEX IX_Alarm_Mc4 (Mc4AlarmId),
|
|
INDEX IX_Alarm_Device (DeviceId),
|
|
INDEX IX_Alarm_Time (StartTime)
|
|
);
|