Phase0_7tables_drop_point_table

This commit is contained in:
2026-05-16 03:24:29 +08:00
parent d92c3da89a
commit d204727a07

View File

@@ -1,14 +1,14 @@
-- ============================================ -- ============================================
-- SecMPS v2.0 数据库建表脚本 -- SecMPS v2.0 数据库建表脚本7张表
-- 数据库: gljs_main -- 数据库: gljs_main
-- 关联规则: 子表字段名=主表主键名, 同类型 → Vol.Pro自动关 -- 点位=子设备, 通过 Base_Device.ParentDeviceId 级
-- ============================================ -- ============================================
USE gljs_main; USE gljs_main;
-- ============================================ -- ============================================
-- 1. 统一设备主表 -- 1. 统一设备主表
-- 子表通过 DeviceId(INT) 关联 -- 采集器/摄像机=父设备(IsParent=1) 探头/通道=子设备(ParentDeviceId)
-- ============================================ -- ============================================
DROP TABLE IF EXISTS Base_Device; DROP TABLE IF EXISTS Base_Device;
CREATE TABLE Base_Device ( CREATE TABLE Base_Device (
@@ -20,7 +20,7 @@ CREATE TABLE Base_Device (
DeviceType NVARCHAR(50) COMMENT '设备细分类型', 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(自引用,子设备挂父设备下)',
IsOnline TINYINT NOT NULL DEFAULT 0 COMMENT '在线状态(0离线/1在线)', IsOnline TINYINT NOT NULL DEFAULT 0 COMMENT '在线状态(0离线/1在线)',
IpAddress NVARCHAR(50) COMMENT 'IP地址', IpAddress NVARCHAR(50) COMMENT 'IP地址',
Port INT COMMENT '端口', Port INT COMMENT '端口',
@@ -58,7 +58,7 @@ CREATE TABLE Device_Video_Ext (
ExtId INT AUTO_INCREMENT COMMENT '扩展记录ID', ExtId INT AUTO_INCREMENT COMMENT '扩展记录ID',
DeviceId INT NOT NULL COMMENT '关联设备ID', 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 '接入协议',
Manufacturer NVARCHAR(100) COMMENT '厂商', Manufacturer NVARCHAR(100) COMMENT '厂商',
Model NVARCHAR(100) COMMENT '设备型号', Model NVARCHAR(100) COMMENT '设备型号',
ChannelCount INT DEFAULT 0 COMMENT '通道数量', ChannelCount INT DEFAULT 0 COMMENT '通道数量',
@@ -70,33 +70,26 @@ CREATE TABLE Device_Video_Ext (
) COMMENT '视频设备扩展表'; ) COMMENT '视频设备扩展表';
-- ============================================ -- ============================================
-- 3. 视频通道表 -- 3. 视频通道表(已废弃,通道=Base_Device子记录
-- DeviceId(INT) → Base_Device.DeviceId -- 保留此表给Owl专用存Owl通道原始信息+流地址
-- 子表: Video_Record.ChannelId(INT) → 本表.ChannelId -- DeviceId(INT) → Base_Device.DeviceId
-- ============================================ -- ============================================
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', DeviceId INT NOT NULL COMMENT '关联Base_Device设备ID',
ChannelName NVARCHAR(100) NOT NULL 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 '是否支持云台', HasPtz TINYINT DEFAULT 0 COMMENT '是否支持云台',
HasRecording TINYINT DEFAULT 0 COMMENT '是否支持录像', HasRecording TINYINT DEFAULT 0 COMMENT '是否支持录像',
RecordMode INT DEFAULT 0 COMMENT '录像模式(0不录像/1设备/2中心)', RecordMode INT DEFAULT 0 COMMENT '录像模式',
IsOnline TINYINT DEFAULT 0 COMMENT '在线状态',
SnapshotUrl NVARCHAR(500) 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 '创建时间', CreateDate DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (ChannelId), PRIMARY KEY (ChannelId),
INDEX IX_Device (DeviceId), INDEX IX_Device (DeviceId),
INDEX IX_Owl (OwlChannelId) INDEX IX_Owl (OwlChannelId)
) COMMENT '视频通道表'; ) COMMENT '视频通道Owl扩展信息';
-- ============================================ -- ============================================
-- 4. 录像记录表 -- 4. 录像记录表
@@ -121,14 +114,19 @@ CREATE TABLE Video_Record (
) COMMENT '录像记录表'; ) COMMENT '录像记录表';
-- ============================================ -- ============================================
-- 5. IoT设备扩展表 -- 5. IoT设备扩展表(含点位属性)
-- DeviceId(INT) → Base_Device.DeviceId -- DeviceId(INT) → Base_Device.DeviceId
-- 子设备(点位)的额外属性: PointIndex/Unit/IsControlPoint
-- ============================================ -- ============================================
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', DeviceId INT NOT NULL COMMENT '关联设备ID',
Mc4DeviceId INT NOT NULL COMMENT 'MC4.0设备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对象类型', ObjectType INT COMMENT 'MC4.0对象类型',
Tag NVARCHAR(100) COMMENT '设备标签', Tag NVARCHAR(100) COMMENT '设备标签',
ParentId INT COMMENT 'MC4.0父级ID', ParentId INT COMMENT 'MC4.0父级ID',
@@ -140,40 +138,13 @@ CREATE TABLE Device_IoT_Ext (
) COMMENT '采集设备扩展表'; ) COMMENT '采集设备扩展表';
-- ============================================ -- ============================================
-- 6. 设备点位 -- 6. 设备数据归档
-- DeviceId(INT) → Base_Device.DeviceId -- 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
-- ============================================ -- ============================================
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', DeviceId INT NOT NULL COMMENT '关联设备ID(子设备/点位)',
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 '采集间隔(毫秒)',
@@ -181,12 +152,11 @@ CREATE TABLE IoT_DeviceData (
CreateDate DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', CreateDate DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (DataId), PRIMARY KEY (DataId),
INDEX IX_Device (DeviceId), INDEX IX_Device (DeviceId),
INDEX IX_Point (PointId),
INDEX IX_Time (CreateDate) INDEX IX_Time (CreateDate)
) COMMENT '设备数据归档表'; ) COMMENT '设备数据归档表';
-- ============================================ -- ============================================
-- 8. 告警记录表(通用:视频/IoT/门禁均可产生 -- 7. 告警记录表(通用)
-- DeviceId(INT) → Base_Device.DeviceId -- DeviceId(INT) → Base_Device.DeviceId
-- ============================================ -- ============================================
DROP TABLE IF EXISTS IoT_Alarm; DROP TABLE IF EXISTS IoT_Alarm;