Files
starRiverProperty/docs/superpowers/specs/2026-05-01-database-schema-reference.md
hpd840321 7b2bd307f1 Initial commit: reorganized source tree
- backend/: 13 Maven modules (cw-elevator-application, cloudwalk-cloud, intelligent-cwoscomponent, ninca-crk, etc.)
- frontend/: 4 Vue projects (elevator-front, cwos-portal, alarm-front, front_acs) + decompiled + scripts
- scripts/: build, test-env, tools (Docker Compose, service templates, API parity)
- docs/: AGENTS.md, superpowers specs, architecture docs
- .gitignore: standard Java/Maven exclusions

Moved from legacy maven-*/ root layout to backend/ organized structure.
2026-05-09 09:56:45 +08:00

313 lines
12 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 星河湾星中星 — 数据库表结构参考手册
设计目标:基于现有信息,通过对五个数据库的核心业务表进行整理,提供 Mermaid ER 图、表级列定义、脱敏样例数据和跨库关系描述,便于后续走查和实现对照。以下内容依据设计设计文档、组织架构文档以及已收集的 mapper/表定义数据编排而成。文档中对不可达库使用明确标注。
本文件遵循以下约定:
- 只包含 BUSINESS 关键表,跳过审计字段(CREATE_TIME、LAST_UPDATE_TIME、CREATE_USER_ID、LAST_UPDATE_USER_ID 等)及系统表。
- ER 图以 Mermaid erDiagram 风格呈现,并按数据库分区显示为子图。
- 脱敏规则:对样本数据进行姓名、手机号、IP、时间戳等字段脱敏;UUID/ID 及业务主键保持不变。
- 跨库关系以虚线标注,文档末尾提供验证模板。
备注:ninca_crk_std 与 alarm_deploy 两个库在当前环境不可连通,文档将以“⚠️ 未连接生产库,以下信息从代码推导”标注,且不提供样本数据。cwos_resource 的 mapper 信息以代码引用为准。
-----------------------------------------------------------------------------
1) 数据库概览
以下表格汇总五个数据库的关键元信息与数据采集方式。
| 数据库 | 主机/来源 | 引擎 | 业务表数量 | 采集方式 | 备注 |
|--------|-----------|------|----------|----------|------|
| component-organization | 192.168.3.12:3307 | InnoDB | 21 | 直连查询 | 多租户组织/人员等核心表 |
| cw-elevator-application | 192.168.3.12:3307 | InnoDB | 8 (分片) | 直连查询 | 电梯策略与规则表 |
| ninca_crk_std | 10.128.123.108:3306 | InnoDB | 未连接 | 代码推导 | 人脸识别库(不可连通) |
| alarm_deploy | 10.128.161.95:3306 | InnoDB | 未连接 | 代码推导 | 报警/告警相关表(不可连通) |
| cwos_resource | — | InnoDB/其他 | 27 映射表 | 代码推导 | 门户资源库 mapper 映射表 |
> 注:上表中的“分片/年表”对 cw-elevator-application 的 it_acs_elevator_record_* 表表现为分区分组,实际 DDL 以最新DDL 为准。
-----------------------------------------------------------------------------
2) 组件组织库 component-organization
ER 图(Mermaid erDiagram
```mermaid
erDiagram
subgraph component-organization
cw_is_organization {
ID PK "机构节点ID"
PARENT_ID FK "父节点ID"
BUSINESS_IDUK "租户范围"
NAME "机构名称"
TYPE_ID "机构类型ID"
IS_DEL "是否删除"
}
cw_is_person {
ID PK "人员ID(API)"
BUSINESS_ID "租户ID"
NAME "姓名"
PHONE "手机号"
EMAIL "邮箱"
}
cw_is_person_organization_ref {
PERSON_ID FK "人员ID"
ORG_ID FK "机构ID"
}
cw_is_person_label_ref {
ID PK
PERSON_ID FK
LABEL_ID FK
}
cw_is_label {
ID PK
NAME "标签名称"
CODE "标签编码"
BUSINESS_ID "租户ID"
}
cw_is_image_store_associated_ref {
IMAGE_STORE_ID FK
ASSOCIATED_OBJECT_ID
ASSOCIATED_ACTION
ID PK
}
cw_is_device_image_store {
ID PK
DEVICE_ID FK
IMAGE_STORE_ID FK
TYPE
STATUS
}
end
cw_is_organization ||--o{ cw_is_organization : "parent_child"
cw_is_organization ||--o{ cw_is_person_organization_ref : "org_node"
cw_is_person ||--o{ cw_is_person_organization_ref : "membership"
cw_is_person_label_ref ||--o{ cw_is_label : "links to label"
```
核心表清单(业务关键列,已去除审计字段)
cw_is_organization
- ID (PK) | NAME | PARENT_ID | BUSINESS_ID | TYPE_ID | IS_DEL
cw_is_person
- ID (PK) | BUSINESS_ID | NAME | PHONE | EMAIL | SOURCE
cw_is_person_organization_ref
- PERSON_ID (FK) | ORG_ID (FK)
cw_is_person_label_ref
- ID (PK) | PERSON_ID (FK) | LABEL_ID (FK)
cw_is_label
- ID (PK) | NAME | CODE | BUSINESS_ID | IS_DEL | ADD_TYPE
cw_is_organization_area_ref
- ID (PK) | ORG_ID | AREA_ID | REf_Type | BUSINESS_ID
cw_is_organization_extend
- ID (PK) | ORGANIZATION_ID | BUSINESS_ID | REMARK
cw_is_organization_extend_detail
- ID (PK) | ORGANIZATION_ID | BUSINESS_ID
cw_is_organization_image_store
- APPLICATION_ID | ORG_ID | IMAGE_STORE_ID
cw_is_person_audit
- ID (PK) | BUSINESS_ID | NAME | PHONE | STATUS
cw_is_person_batch_detail
- ID (PK) | BATCH_ID | FILE_NAME | PERSON_NAME | STATUS
- 其他表同理,未在此处逐一展开,详见表列定义文件。
样本数据(脱敏后,3 行每表)
### cw_is_organization — 样本数据
| ID | NAME | ORDER_BY | PARENT_ID | BUSINESS_ID | TYPE_ID | IS_DEL |
|----|------|----------|-----------|-------------|---------|--------|
| fdeda9005dfa427da6bff924762917b7 | 617 | NULL | 99e9c6a09f534c0185e32664eb126be4 | 2524639890ba4f2cba9ba1a4eeaa4015 | 47f416aeae9f49f4a35bb22966b42181 | 0 |
| fd478ee4ffa240519657ff12b3d48726 | 基建部 | NULL | eef0a610fa9e4720a20c58aef2f229e3 | 2524639890ba4f2cba9ba1a4eeaa4015 | 47f416aeae9f49f4a35bb22966b42181 | 0 |
| fca1dd090e5d49eca3ee190bca014ca0 | 行政部 | NULL | a1d422625add4403b4e889a503cb2b12 | 2524639890ba4f2cba9ba1a4eeaa4015 | 47f416aeae9f49f4a35bb22966b42181 | 1 |
### cw_is_person — 样本数据
| ID | BUSINESS_ID | NAME | PHONE | STATUS |
|----|-------------|------|-------|--------|
| 999998332677980160 | 2524639890ba4f2cba9ba1a4eeaa4015 | 蔡** | 139****3370 | 0 |
| 999998240135180288 | 2524639890ba4f2cba9ba1a4eeaa4015 | 赫** | 139****5836 | 0 |
| 999997066723823616 | 2524639890ba4f2cba9ba1a4eeaa4015 | 黄** | 159****6886 | 0 |
### cw_is_person_organization_ref — 样本数据
| ID | PERSON_ID | ORG_ID |
|----|-----------|--------|
| fffe7b4d5ce9427ea8703d9d568306c2 | 956535134721798144 | f5d90d608d1042c487bf18af58345d5c |
| fff80f46206942ecaa123365e5475f66 | 1069265515460378624 | 488b8ad049bb43408a6fbcc50bcb89ac |
| fff4a8bdc90442749a8f463e5f07ebd3 | 822522654509887488 | e7c6ad5429434ec7b8c159d44e126579 |
### 其它表 — 样本数据(脱敏后)
- 参见源码数据表格,依据脱敏规则处理。若需扩展,请按同样模板添加。
-----------------------------------------------------------------------------
3) 电梯应用库 cw-elevator-application
ER 图(Mermaid erDiagram
```mermaid
erDiagram
tenant_visitor_floor_policy {
id PK
business_id UK
policy_type
allow_zone_ids
}
image_rule_ref {
id PK
business_id
zone_id
zone_name
person_id
is_default
}
```
核心表清单(业务关键列)
- tenant_visitor_floor_policy: id, business_id, policy_type, allow_zone_ids, enabled, policy_version
- image_rule_ref: id, zone_id, zone_name, name, person_id, include_labels, include_organizations, is_default, business_id
样本数据(脱敏后,最多3行)
### tenant_visitor_floor_policy — 样本
| id | business_id | policy_type | allow_zone_ids |
|----|--------------|-------------|----------------|
| gf_vstr_policy_guangfa_fund_001x | 2524639890ba4f2cba9ba1a4eeaa4015 | INTERSECT_ALLOWLIST | ["605560545117995008"] (28F) |
| _(当前库仅此一行策略)_ | | | |
### image_rule_ref — 样本
| id | zone_id | zone_name | person_id | is_default |
|----|---------|-----------|-----------|------------|
| 999998333961596928 | 605560541473144832 | 6F | 999998332677980160 | NULL |
| 999998241204416512 | 605560542752407552 | 15F | 999998240135180288 | NULL |
| 999997067843825664 | 605560543834537984 | 20F | 999997066723823616 | NULL |
-----------------------------------------------------------------------------
4) 人脸识别库 ninca_crk_std
⚠️ 未连接生产库,以下信息从代码推导
- 说明:该库不可连通,样本数据不提供。表与字段推导基于代码注释及 Mapper 命名推断,具体字段以生产环境为准。
- 相关表以常用人脸识别场景为基准推断,包含 cw_is_person/ cw_is_organization 相关联模式,详细结构请参照设计文件附录。
-----------------------------------------------------------------------------
5) 报警库 alarm_deploy
⚠️ 未连接生产库,以下信息从代码推导
- 说明:该库不可连通,样本数据不提供。推导基于 Alarm 领域常规表命名与 Mapper 文件结构。
- 具体表结构以代码为准,文档中仅给出 ER 零散草图及字段推导口径。
-----------------------------------------------------------------------------
6) 门户资源库 cwos_resource
⚠️ 代码推导 — 仅依据 mapper 文件路径及常见命名推断
常见实体与关系(简化 ER
```mermaid
erDiagram
Api {
ID PK
NAME
}
Application {
ID PK
NAME
}
Resource {
ID PK
NAME
}
Dict {
ID PK
NAME
}
Enterprise {
ID PK
NAME
}
User {
ID PK
USER_NAME
}
Group {
ID PK
NAME
}
Api ||--o{ Resource : relates
Application ||--o{ Resource : consumes
```
- mapper XML 文件清单(27 个)参见 docs/superpowers/data/cwos-resource/mapper_files.txt;对应的表名映射请以各 XML 内容为准。
- 27 个 mapper 列表:ApiMapper.xml、AppApiMapper.xml、ApplicationApiMapper.xml、ApplicationMapper.xml、AppResMapper.xml、AuthApiMapper.xml、AuthorizationMapper.xml、AuthResourceMapper.xml、DictMapper.xml、DictTypeMapper.xml、EnterpriseMapper.xml、GroupInfoMapper.xml、GroupRoleMapper.xml、ResourceApiMapper.xml、ResourceMapper.xml、RoleApiMapper.xml、RoleAuthMapper.xml、RoleMapper.xml、RoleResourceMapper.xml、ServiceMapper.xml、UserAccountMapper.xml、UserApplicationMapper.xml、UserGroupMapper.xml、UserMapper.xml、UserResMapper.xml、UserRoleMapper.xml、以及 Oracle/SqlServer 对应分支等。
备注:cwos_resource 的 ER 及列定义以 mapper 内容推导为主,实际情况请以 Mapper XML 文件为准。
-----------------------------------------------------------------------------
7) 跨库关系总图
跨库关系概要:cw_is_organization.BUSINESS_ID ↔ tenant_visitor_floor_policy.business_idcw_is_person.ID ↔ image_rule_ref.person_id(通过 API 字段 personId);cw_is_person.ID → cw_is_person_organization_ref.PERSON_ID → cw_is_organization.IDcw_is_person_label_ref 将 cw_is_person 与 cw_is_label 关联以支持访客标签。
```mermaid
erDiagram
cw_is_organization ||--o{ cw_is_organization : "parent_child"
cw_is_person ||--o{ cw_is_person_organization_ref : "membership"
cw_is_person_label_ref ||--o{ cw_is_label : "labels"
tenant_visitor_floor_policy }|..|| image_rule_ref : "policy_link"
%% 跨库对齐示意
cw_is_organization.BUSINESS_ID }|..|| tenant_visitor_floor_policy.BUSINESS_ID : "跨库 BUSINESS_ID 对齐"
cw_is_person.ID }|..|| image_rule_ref.PERSON_ID : "跨库 person 引用"
```
-----------------------------------------------------------------------------
8) 代码-表映射索引
- cw-elevator-application:如 AcsElevatorCodeMapper.xml、AcsDeviceTaskMapper.xml、AcsElevatorDeviceMapper.xml、DeviceImageStoreMapper.xml、TenantVisitorFloorPolicyMapper.xml、AcsElevatorRecordMapper.xml、AcsPassRuleMapper.xml、AcsRecogRecordMapper.xml、ImageRuleRefMapper.xml、SendRecordTimeMapper.xml 等,均映射到相应的 elevator/record/… 表。
- cwos_resource27 个 Mapper 映射到相应的资源表(如 Api、Application、Dict、Enterprise、Group、Resource、User 等),具体表名以 mapper 内容为准,参见 docs/superpowers/data/cwos-resource/mapper_files.txt。
- 代码表映射是动态的,请以 Mapper XML 实际内容为准进行对照。
附注:该部分为索引性描述,方便对照查阅。
-----------------------------------------------------------------------------
9) 附录 — 验证 SQL 模板
- 数据库概览查询
```
SELECT TABLE_SCHEMA, TABLE_NAME, ENGINE, TABLE_ROWS
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA IN ('component-organization','cw-elevator-application','ninca_crk_std','alarm_deploy','cwos_resource')
ORDER BY TABLE_SCHEMA, TABLE_NAME;
```
- 列字段清单(示例:component-organization 的核心表 cw_is_organization
```
SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_KEY
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'component-organization'
AND TABLE_NAME = 'cw_is_organization'
ORDER BY ORDINAL_POSITION;
```
- 样本数据提取(三行,已脱敏)
```
SELECT * FROM component-organization.cw_is_organization ORDER BY ID DESC LIMIT 3;
```
-----------------------------------------------------------------------------
此文档为自动化聚合产物,最终实现以实际数据库结构、Mapper 内容及实际数据为准。