docs(design): apply Sense prototype review
Harness governance / validate (push) Has been cancelled
Harness governance / validate (pull_request) Has been cancelled

This commit is contained in:
QiuSW
2026-08-04 10:05:56 +08:00
parent d36b785f67
commit e18a1ea83b
11 changed files with 444 additions and 130 deletions
+7 -5
View File
@@ -125,8 +125,8 @@ erDiagram
| --- | --- | --- |
| **Tenant 租户** | 计费与数据隔离的最小单位 | 所有查询必须带 tenant_id,无例外 |
| **Site 站点** | 一个物理场所(一户 / 一所学校 / 一个小区) | 升级链、时段策略挂在这一层 |
| **Area 区域** | 站点内的逻辑分区(教学楼 / 单元 / 客厅) | 用于权限范围与报表口径 |
| **Device 设备** | **不叫 Camera**,`device_type` 取 camera/radar/door/button | 为异构传感器预留(继承参考项目 §4.5) |
| **Area 区域** | 站点内的逻辑分区(教学楼 / 单元 / 客厅) | 用于权限范围、报表口径与设备准入;`capture_policy` 表达是否仅允许非成像设备 |
| **Device 设备** | **不叫 Camera**;`modality` 表达 video/radar/contact/button/wearable/other,`capabilities` 表达成像、媒体、遥测等具体能力 | 模态负责稳定分类,能力负责决定字段与操作,避免接入新设备时重做台账和页面 |
| **Zone 画面区域** | 画在某路画面上的多边形或警戒线 | 与 Area 是两回事:Area 是物理概念,Zone 是像素坐标 |
| **Rule 规则** | 「主体 × 条件 × 时空 × 动作」的可配置组合 | 三级覆盖:租户默认 → 站点 → 设备 |
| **Event 事件** | 一次被判定成立的客观发生 | **不可变**。误判只能被标记,不能被删改 |
@@ -612,17 +612,19 @@ GPU 型号和数量不在需求阶段写死。M1 用 5 路打通,M3 以 16 路
tenants(id, code, name, status, plan, created_at)
sites(id, tenant_id, code, name, scene_pack, subnet CIDR, timezone, status,
max_video_channels INT NOT NULL DEFAULT 16 CHECK (max_video_channels BETWEEN 1 AND 128))
areas(id, site_id, name, parent_id)
areas(id, site_id, name, parent_id,
capture_policy) -- video_allowed | non_imaging_only
-- ── 设备(不叫 cameras,为异构传感器预留)────
devices(
id, tenant_id, site_id, area_id,
device_type, -- camera | radar | door | button
modality, -- video | radar | contact | button | wearable | other
device_kind, -- camera | mmwave_radar | door_contact | panic_button | ...
capabilities JSONB, -- captures_image / media_stream / telemetry / battery / spatial_config / ...
serial UNIQUE, -- ⚠️ 身份用序列号,不用 IP
vendor, model,
onvif_addr, onvif_user, onvif_secret, -- secret 加密存储
state, -- pending_activation | active | offline | disabled
privacy_flag, -- 隐私区域标记,为 true 时拒绝 camera 类型
last_seen_at
)
stream_bindings(id, device_id, mtx_instance, inference_shard, path_name, rtsp_url, profile_token, enabled,