方法 1: grep 库名

数据库体系架构总览

最后更新: 2026-07-06

按 PPS 工艺规程落地模式重构:每个领域一个独立库,库名=领域名,带完整文档和代码注释


📐 设计原则

#原则说明
1每个领域一个独立库互不依赖,删一个不影响其他
2库名 = 领域名一眼知道干啥,不用猜
3每个库有文档表清单、行数、导入方式、引用代码全写清楚
4代码引用处加注释见代码即知库路径和用途
5任何人可接管看文档 + 代码注释就能上手

📊 数据库清单(9 个生产库 + 5 个辅助文件)

总览表

#库名路径大小行数领域
1rule_enginedata/rule_engine.db2.5MB11,203SCIOT 规则引擎 + 元数据缓存
2pps_process_datadata/sccapp_process_data.db303MB920,367工艺规程 ✅ 已按规范落地
3core_runtimeserver/data/core_runtime.db4.0MB531BossAgents 运行时库(SCSAI 同步缓存 + 文档资产 + AI 动作/推理日志 + 质量 KPI/SPC + BOM/变更缓存等)PI/SPC + BOM/变更缓存等)
4sciot-metadataserver/data/sciot-metadata.db6.4MB49,879SCIOT 完整元数据(备用)
5sciot_import(旧)server/data/sciot_import.db868KB482数字员工 + 残余规则数据
6aml_storeserver/data/aml_store.db42MB8,236AML 对象存储
7boss_analyticsserver/data/boss_analytics.db5.2MB23,085审计日志 + 风险告警
8enterprise_storeserver/data/enterprise_store.db68KB24企业私有库
9bossagents-testdata/bossagents-test.db0测试库
backup_1data/bossagents_backup_20260705_162038.db旧备份
backup_2data/bossagents_backup_pre_sync_20260705_171348.db旧备份
amlserver/data/aml.db0空库(预留)
sciot_import(完整版)server/sciot_import.db0字节0⚠️ 已丢失
boss_tenantsserver/data/boss_tenants.db租户配置

详细库说明

1️⃣ rule_engine.db — SCIOT 规则引擎 + 元数据缓存 🟡

路径: data/rule_engine.db

大小: 2.5MB | 总行数: 11,203

核心路由: server/routes/aml.jsgetSciotDb() 指向此库

数据来源: 启动时从 generated/full-aml-extract.json 同步 + 手动从 JSON 导入

#### 表清单

| 表名 | 行数 | 用途 | 数据来源 |

|------|------|------|---------|

| sciot_rules_v2 | 7,053 | 规则主表(validate/create/identify/inspect 等) | generated/sciot-rules-auto.json 导入 |

| sciot_properties | 2,821 | 属性定义 | full-aml-extract.json 启动同步 |

| sciot_item_types | 298 | 对象类清单 | full-aml-extract.json 启动同步 |

| sciot_templates | 298 | 模板(每对象类一条) | full-aml-extract.json 启动同步 |

| sciot_relationships | 431 | 关系定义 | full-aml-extract.json 启动同步 |

| prompt_templates | 298 | 对象提示词 | generated/sciot-prompts-auto.json 导入 |

| sciot_lifecycle_maps | 0 | 生命周期映射 | 未导入 |

| sciot_lifecycle_states | 0 | 生命周期状态 | 未导入 |

| sciot_list_values | 0 | List 值 | 未导入 |

| sciot_methods | 0 | ⚠️ 数据丢失 | 原在 35.8MB 完整版中 |

| sciot_sequences | 0 | ⚠️ 数据丢失 | 原在 35.8MB 完整版中 |

| sciot_prompts | 0 | 已废弃(改用 prompt_templates) | — |

| pps_* 系列表 | 0 | 残留空表(应归 sccapp_process_data.db) | — |

#### 引用代码

| 文件 | 行 | 用途 |

|------|-----|------|

| server.js | 259 | 启动时同步 |

| server.js | 2097 | GET /api/system/health |

| server.js | 2109 | GET /api/system/stats |

| server.js | 2119 | GET /api/aml/auto-all |

| server.js | 2133 | GET /api/aml/sciot/templates |

| server.js | 2352 | 规则引擎 |

| server.js | 2391 | 创建日志 |

| server.js | 2434 | 修正记录 |

| server.js | 2607 | 提示词模板 |

| server.js | 2829 | 规则引擎触发 |

| server.js | 2872 | 意图识别 |

| server.js | 3012 | 类型列表 |

| server.js | 4371 | 发布文章 |

| server.js | 4393 | 发布文章 |

| server.js | 4447 | 产品供应商 |

| server.js | 6566 | 数据库初始化 |

| server/routes/aml.js | 597-656 | getSciotDb() 单例连接 |

#### 最近修复

| 修复项 | 前 | 后 |

|--------|----|----|

| prompt_templates 表结构 | 缺 10 列 | 完整 18 列(含 system_prompt/item_type_name/status 等) |

| 提示词数据 | 0 条 | 298 条 ✅ |

| 规则数据 | 75 条 | 7,053 条 ✅ |

| getSciotDb() 注释 | 无 | 完整注释 + prompt_templates 自动校验 |


2️⃣ sccapp_process_data.db — 工艺规程 ✅ 已按规范落地

路径: data/sccapp_process_data.db

大小: 303MB | 总行数: 920,367

文档: data/PPS_DATABASE_README.md

#### 表清单

| 表名 | 行数 | 用途 |

|------|------|------|

| sccapp_tech_data | 300,887 | 参数 |

| sccapp_steps | 280,045 | 工步 |

| sccapp_procs | 163,456 | 工序 |

| sccapp_tech_files | 112,564 | 工艺文件(有效 26,092 + 空 86,472) |

| pps_techfile_reports | 54,272 | 工艺文件报告 |

| pps_techfile_resources | 8,138 | 工艺文件资源 |

| process_specs | 1,005 | 工艺规程 |

| sccapp_sync_progress | 0 | 同步进度 tracking |

| 其他 | 0 | 预留空表 |

#### 引用代码

| 文件 | 行 | 用途 |

|------|-----|------|

| server.js | 3202 | /api/process-spec/ 路由 |

| server.js | 3879 | /api/pps/* 查询路由 |

| server.js | 4168 | /api/sccapp-convert/* 路由 |


3️⃣ core_runtime.db — BossAgents 运行时库

路径: server/data/core_runtime.db(经 server/sqlite-compat.js 的 canonicalPath 重定向,代码中 createDatabase('core_runtime.db') 即落到此处)b') 即落到此处)

大小: 4.0MB | 总行数: 531

用途: SCSAI 同步缓存 / 文档资产 / AI 动作·推理日志 / 质量 KPI·SPC / BOM·变更运行时缓存(非业务主数据,主数据在 SCSAI/PLM 侧)

#### 有数据的表

| 表名 | 行数 | 用途 |

|------|------|------|

| SCSAI_sync_cache | 296 | SCSAI 同步缓存 |

| SCSAI_sync_log | 9 | 同步日志 |

| alignment_matrix | 18 | 对齐矩阵 |

| alignment_batch_strategy | 6 | 批量策略 |

| content_brand_config | 5 | 品牌配置 |

| content_calendar | 6 | 内容日历 |

| doc_generation_templates | 4 | 文档生成模板 |

| alignment_resource_budget | 1 | 资源预算 |

#### 空表(80+ 个,全部 0 行)

这些表的结构已创建但无数据,属于预留状态。涉及领域:

BOM管理(bom_)、变更管理(change_)、质量管理(quality_)、库存(inventory_)、

文档(doc_)、项目管理(project_)、订单(orders)、客户(customers)、供应商(vendors)、

工艺(pps_/process_)、员工(employees)、知识库(knowledge_*) 等

#### 引用代码

全局使用,未显式指定库名(由 db-adapter 或 database1.js 管理)


4️⃣ sciot-metadata.db — SCIOT 完整元数据(备用)

路径: server/data/sciot-metadata.db

大小: 6.4MB | 总行数: 49,879

用途: SCIOT 最完整的元数据来源(包含 rule_engine.db 没有的扩展数据)

#### 对比 rule_engine.db 的差异

| 表 | rule_engine.db | sciot-metadata.db | 差距 |

|---|:---:|:---:|:----:|

| sciot_item_types | 298 | 1,217 | +919 |

| sciot_properties | 2,821 | 41,240 | +38,419 |

| sciot_relationships | 431 | 587 | +156 |

| sciot_list_values | 0 | 6,290 | +6,290 |

| sciot_lifecycle_maps | 0 | 48 | +48 |

| sciot_lifecycle_states | 0 | 192 | +192 |

注: 此库数据更全,但 getSciotDb() 当前指向 rule_engine.db。如需使用完整数据,需将 getSciotDb() 改为从此库读取,或定期同步。


5️⃣ sciot_import.db(旧)— 数字员工 + 残余数据

路径: server/data/sciot_import.db

大小: 868KB | 总行数: 482

用途: 数字员工数据 + 少量遗留规则

状态: ❌ 废弃。设计文档说的 35.8MB 完整版(含 2,817 条提示词、2,367 条规则、1,205 条模板)已丢失(0字节)

#### 表清单

| 表名 | 行数 | 用途 | 迁移状态 |

|------|------|------|---------|

| staff_execution_logs | 188 | 员工执行日志 | 未迁移 |

| staff_execution_outcomes | 72 | 执行结果 | 未迁移 |

| staff_tasks | 82 | 员工任务 | 未迁移 |

| sciot_rules_v2 | 75 | 规则(旧数据) | 已迁至 rule_engine.db |

| digital_staff | 34 | 数字员工配置 | 未迁移 |

| staff_lessons | 17 | 经验教训 | 未迁移 |

| user_assets | 9 | 用户资产 | 未迁移 |

| 其他 | 2 | test_cases(2), rule_simulations(1) | — |


6️⃣ aml_store.db — AML 对象存储

路径: server/data/aml_store.db

大小: 42MB | 总行数: 8,236

用途: 存储 AML 组装产生的中间对象

| 表名 | 行数 | 用途 |

|------|------|------|

| aml_objects | 8,235 | AML 对象 |

| sqlite_sequence | 1 | 自增管理 |


7️⃣ boss_analytics.db — 审计日志 + 风险告警

路径: server/data/boss_analytics.db

大小: 5.2MB | 总行数: 23,085

| 表名 | 行数 | 用途 |

|------|------|------|

| audit_logs | 12,119 | 审计日志 |

| risk_alerts | 10,784 | 风险告警 |

| daily_snapshots | 175 | 每日快照 |

| dispatch_history | 3 | 调度历史 |


8️⃣ enterprise_store.db — 企业私有库

路径: server/data/enterprise_store.db

大小: 68KB | 总行数: 24

| 表名 | 行数 | 用途 |

|------|------|------|

| enterprise_objects | 19 | 企业对象 |

| sciot_corrections | 5 | 修正记录 |

引用代码: server/routes/private-library.js


📡 数据流向

┌──────────────────────────────────────────────────────┐
│  SCSAI 服务端 (源端)                                   │
│  ItemType/Property/Relationship/Lifecycle/List/Method│
└──────────┬───────────────────────────────────────────┘
           │ template-sync-service.js (启动时同步)
           ▼
┌──────────────────────┐    ┌──────────────────────┐
│ rule_engine.db        │    │ sciot-metadata.db     │
│ (元数据缓存, 298类型)  │    │ (完整元数据, 1217类型) │
│ 2.5MB / 11,203行     │◄──►│ 6.4MB / 49,879行     │
└──────────┬───────────┘    └──────────────────────┘
           │ 手动导入 JSON
           ▼
┌──────────────────────┐
│ JSON 数据源           │
│ generated/            │
│ ├─ full-aml-extract   │
│ ├─ sciot-prompts-auto │
│ ├─ sciot-rules-auto   │
│ └─ sciot-templates-auto│
└──────────────────────┘

┌──────────────────────┐    ┌──────────────────────┐
│ core_runtime.db         │    │ sccapp_process_data.db  │
│ (业务数据, ~350行)    │    │ (工艺规程, 920K行)   │
│ BOM/变更/文档/订单等  │    │ ✅ 已按规范独立落地    │
└──────────────────────┘    └──────────────────────┘

┌──────────────────────┐    ┌──────────────────────┐
│ boss_analytics.db    │    │ aml_store.db          │
│ (审计/风险, 23K行)   │    │ (AML对象, 8.2K行)    │
└──────────────────────┘    └──────────────────────┘

┌──────────────────────┐
│ sciot_import.db(旧)  │
│ (数字员工, ~480行)   │
│ ❌ 废弃, 35.8MB完整  │
│    版已丢失(0字节)    │
└──────────────────────┘

✅ 本次修复清单(2026-07-06)

1. prompt_templates 表结构修复

  • 问题: 表缺 system_prompt / item_type_name / operation_type / version / status / scope / is_builtin / parent_id / score / usage_count 共 10 列
  • 表现: GET /api/aml/sciot/prompts 查不存在列 → SQLite 抛错 → undefined.c → 前端报 Cannot read properties of undefined (reading 'c')
  • 修复: 加 10 列,重建表为 TEXT PRIMARY KEY 结构

2. 提示词数据导入(298 条)

  • 来源: generated/sciot-prompts-auto.json
  • 目标: rule_engine.dbprompt_templates
  • 验证: 覆盖全部 298 个对象类(APQP CC Catalog, Change Request, Document 等)

3. 规则数据导入(7,053 条)

  • 来源: generated/sciot-rules-auto.json (3,489 条) + 已有数据 (3,564 条)
  • 目标: rule_engine.dbsciot_rules_v2
  • 范围: identify / create / create_pre / validate / inspect 等

4. getSciotDb() 代码注释 + 验证

  • 文件: server/routes/aml.js L585-656
  • 修改: 加完整注释(数据库路径、表清单、数据来源)+ prompt_templates 表结构自动校验/重建逻辑

5. server.js 数据库引用路径更正

  • 数量: 16 处
  • 变更: server/data/sciot_import.dbdata/rule_engine.db
  • 加注释: 每处标注数据库用途

6. 缺失表创建

  • 新建表: sciot_lists, sciot_forms, sciot_identities, sciot_permissions, sciot_sqls, sciot_variables
  • 目标: 确保"系统对象管理"页面查询不崩

❌ 遗留问题

| # | 问题 | 影响 | 修复方案 |

|---|------|------|---------|

| 1 | sciot_methods 数据丢失(原 2,236 条) | "系统对象管理" → Method(0) | 从 SCSAI 重新同步或从备份恢复 |

| 2 | sciot_sequences 数据丢失 | "系统对象管理" → Sequence(0) | 从 SCSAI 重新同步或从备份恢复 |

| 3 | rule_engine.db 缺 919 个 item_type(当前 298,完整 1,217) | 部分对象类在规则引擎中不可见 | 从 sciot-metadata.db 迁移 |

| 4 | rule_engine.db 缺 38,419 个 property(当前 2,821,完整 41,240) | 属性数据不完整 | 从 sciot-metadata.db 迁移 |

| 5 | rule_engine.db 缺 6,290 个 list value | List 值引用失效 | 从 sciot-metadata.db 迁移 |

| 6 | server/sciot_import.db 0 字节(35.8MB 完整版丢失) | 原始设计数据不再可用 | 找 Git 历史或文件系统恢复 |

| 7 | 两个 sciot_import.db 命名混淆 | 开发者不知道该用哪个 | 统一废弃,集中用 rule_engine.db |


📁 命名规范

data/<领域>_<类型>.db

| 命名 | 路径 | 职责 |

|------|------|------|

| rule_engine.db | data/ | SCIOT 规则 + 模板 + 提示词 + 元数据缓存 |

| sccapp_process_data.db | data/ | ✅ 工艺规程数据 |

| core_runtime.db | server/data/ | BossAgents 运行时库(SCSAI 同步缓存 / 文档资产 / AI 日志 / 质量 KPI / BOM·变更缓存) |

| sciot-metadata.db | server/data/ | SCIOT 完整元数据 |

建议重命名(Phase 2)

当前名建议名原因
core_runtime.dbserver/data/core_runtime.dbBossAgents 运行时库(2026-08-03 由 bossagents.db 改名,名已达意)s.db 改名,名已达意)
rule_engine.dbsciot_cache.db名不达意,不仅含规则
sciot-metadata.dbsciot_fullmeta.db加 full 标识完整数据
enterprise_store.dbenterprise_lib.db统一后缀为 lib
sciot_import.db废弃35.8MB 完整版已丢失

🔍 开发调试指引

如何查某个 API 用的什么库

# 方法 1: grep 库名
grep -n "data/rule_engine.db\|sciot_import.db" server.js

# 方法 2: grep 路由
grep -n "/api/aml/sciot/prompts" server/routes/aml.js

# 方法 3: 查表行数
node -e "
  const p=require('path');const c=require('./server/db-adapter');
  (async()=>{await c.init();const d=c.createDatabase(p.resolve('data/rule_engine.db'));
  console.log(d.prepare('SELECT COUNT(*) as c FROM prompt_templates').get().c);
  d.close();})();
"

启动时数据丢失

如果 rule_engine.db 数据丢失,从 JSON 重新导入:

node -e "
  // 参考 server.js:276 的同步逻辑
  // 从 generated/full-aml-extract.json 同步 item_types/properties/relationships/templates
  // 从 generated/sciot-prompts-auto.json 导入提示词
  // 从 generated/sciot-rules-auto.json 导入规则
"

📋 附录:表字段映射

prompt_templates 表(完整结构)

CREATE TABLE prompt_templates (
    id             TEXT  PRIMARY KEY,       -- 提示词 ID
    name           TEXT  NOT NULL,           -- 名称
    description    TEXT,                     -- 描述
    content        TEXT  NOT NULL,           -- 提示词正文
    variables      TEXT,                     -- 变量列表 JSON
    prompt_type    TEXT  DEFAULT 'creation', -- 类型 (creation/validate/identify)
    item_type_name TEXT,                     -- 适用 ItemType
    version        INTEGER DEFAULT 1,        -- 版本号
    status         TEXT  DEFAULT 'active',   -- 状态 (active/deprecated/testing)
    parent_id      TEXT,                     -- A/B 测试父级
    score          REAL  DEFAULT 0,          -- 质量评分
    usage_count    INTEGER DEFAULT 0,        -- 使用次数
    operation_type TEXT,                     -- 操作类型
    system_prompt  TEXT,                     -- 系统提示词
    scope          TEXT,                     -- 作用范围
    is_builtin     INTEGER DEFAULT 0,        -- 是否内置
    created_at     TEXT,                     -- 创建时间
    updated_at     TEXT                      -- 更新时间
);

sciot_rules_v2 表(完整结构)

CREATE TABLE sciot_rules_v2 (
    id              TEXT  PRIMARY KEY,       -- 规则 ID
    name            TEXT  NOT NULL,           -- 规则名称
    description     TEXT,                     -- 规则描述
    scope           TEXT  NOT NULL,           -- 作用范围 (validate/create_pre/create_post)
    item_type_name  TEXT,                     -- 适用 ItemType
    severity        TEXT  DEFAULT 'warning',  -- 严重级别
    priority        INTEGER DEFAULT 2,        -- 优先级
    condition       TEXT,                     -- 条件配置 JSON
    condition_script TEXT,                    -- 条件 JS 脚本
    action_type     TEXT,                     -- 动作类型
    action_config   TEXT,                     -- 动作配置 JSON
    action_script   TEXT,                     -- 自定义动作 JS
    prompt_template TEXT,                     -- 内联提示词模板
    prompt_template_id TEXT,                  -- 关联 prompt_templates.id
    is_active       INTEGER DEFAULT 1,        -- 是否启用
    is_builtin      INTEGER DEFAULT 0,        -- 是否内置
    source          TEXT DEFAULT 'manual',    -- 来源
    version         INTEGER DEFAULT 1,        -- 版本号
    tags            TEXT,                     -- 标签
    category        TEXT,                     -- 分类
    created_at      TEXT,                     -- 创建时间
    updated_at      TEXT                      -- 更新时间
);
← 返回案例列表
分享:
🤖 Try Now →
🤖
🎁