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

12 KiB
Raw Permalink Blame History

星河湾星中星 — 数据库表结构参考手册

设计目标:基于现有信息,通过对五个数据库的核心业务表进行整理,提供 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 为准。


  1. 组件组织库 component-organization

ER 图(Mermaid erDiagram

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

其它表 — 样本数据(脱敏后)

  • 参见源码数据表格,依据脱敏规则处理。若需扩展,请按同样模板添加。

  1. 电梯应用库 cw-elevator-application

ER 图(Mermaid erDiagram

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

  1. 人脸识别库 ninca_crk_std ⚠️ 未连接生产库,以下信息从代码推导
  • 说明:该库不可连通,样本数据不提供。表与字段推导基于代码注释及 Mapper 命名推断,具体字段以生产环境为准。
  • 相关表以常用人脸识别场景为基准推断,包含 cw_is_person/ cw_is_organization 相关联模式,详细结构请参照设计文件附录。

  1. 报警库 alarm_deploy ⚠️ 未连接生产库,以下信息从代码推导
  • 说明:该库不可连通,样本数据不提供。推导基于 Alarm 领域常规表命名与 Mapper 文件结构。
  • 具体表结构以代码为准,文档中仅给出 ER 零散草图及字段推导口径。

  1. 门户资源库 cwos_resource ⚠️ 代码推导 — 仅依据 mapper 文件路径及常见命名推断

常见实体与关系(简化 ER

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 文件为准。


  1. 跨库关系总图

跨库关系概要: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 关联以支持访客标签。

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 引用"

  1. 代码-表映射索引
  • 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 实际内容为准进行对照。

附注:该部分为索引性描述,方便对照查阅。


  1. 附录 — 验证 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 内容及实际数据为准。