Files
ai-web-delivery-doc/diagrams/G02-领域概念关系.md
mdszxy 638d3541bf 建立可移交的 AI 软件交付规划文档仓库。
纳入截至 2026-10-13 会议回写后的产品基线与会议图源。
2026-10-13 22:27:58 +08:00

4.9 KiB
Raw Permalink Blame History

G02 领域概念关系

2026-10-13 · 业务基线 0.15 · 图集版本 0.18。概念图不等于数据库 ER 图或部署架构。投影用 SVG 尚未按本次文字重绘。

项目代表业务目标。应用指功能,例如邮箱应用。初级版本不选择组件。域名是需要购买的资源。

领域概念关系

flowchart TB
    account["客户账户"]
    grouping["项目组:可选、单层
一个项目最多属于一个组"]
    project["项目:一个业务目标
稳定 ID;不依赖人工编号"]
    app["应用:一项功能
例如邮箱应用"]
    preset["应用预设
初级版本不让客户改选组件"]
    component["运行组件:Web / API / worker
初级按预设固定;高级版本以后再选"]
    resource["数据库、持久化存储等资源
明确归属与使用引用"]
    service["域名资源
需要购买,不包含在应用里"]
    account -->|"拥有多个"| project
    project -->|"可归入一个组;不产生互通授权"| grouping
    project -->|"包含"| app
    preset -->|"实例化并约束配置"| app
    app -->|"由组件运行"| component
    component -->|"显式引用,可共享"| resource
    project -->|"购买"| service

主图中的关系有五个边界:

  • 应用指功能。邮箱应用是一种应用,不再把仅邮箱理解成零应用。初级版本不提供组件选择,Web、API、worker 按预设固定带上。高级版本以后用界面选择这个项目要不要组件。
  • 域名是需要购买的资源,不包含在应用里。
  • 同集群、同环境的同项目 APP 默认使用同一个 namespace;namespace 不等于数据库,也不自动授予共享权限。项目可有零到多个数据库。
  • 数据库、卷、供应商实例和购买项是不同对象。数据库共享需明确引用和权限;PVC 直接引用受 namespace 约束,外部数据库用连接授权。仓库、项目、数据库与 namespace 不要求同名。
  • 项目组只是客户整理工具,与后台用于定价的“价格客户组”不同。跨项目 API 协作需另外授权。
  • 零引用资源进入待释放处理:移除最后一个引用时提示用户,释放前复核引用和任务;恢复引用应取消释放。三天延迟只是候选参数。独立服务不随 APP 删除自动取消。

工单、发布与购买项

工单与购买项

flowchart TB
    scope["项目:工单的业务范围"]
    workOrder["工单属于一个项目
可修改该项目多个 APP"]
    version["项目发布组合
关联涉及 APP 的代码、产物、配置版本"]
    software["APP:完整软件实例"]
    runtime["运行组件与配置档位"]
    resources["明确归属的数据库 / 存储
可被多个组件显式引用"]
    items["购买项:独立计费对象
组件资源分别计费;共享资源只计一份"]
    scope --> workOrder --> version
    version -->|"记录版本"| software
    software -->|"由组件运行"| runtime
    runtime -->|"显式引用"| resources
    runtime -->|"配置费用"| items
    resources -->|"对应购买项"| items

发布组合表达一组实际版本,不要求多个仓库拥有同一个提交号;业务范围、技术组件和购买项不应合并成一个对象。

三个具体例子

项目组成例子

flowchart TB
    subgraph financial["例 1:金融官网"]
        financeApp["金融官网 APP"]
        financeWeb["Web 与后台组件"]
        financeDb["必需:数据库"]
        financePvc["必需:PVC 文件存储"]
        financeApp --> financeWeb
        financeWeb --> financeDb
        financeWeb --> financePvc
    end
    subgraph collecting["例 2:Web 与采集"]
        collectApp["一个 APP 也可同时包含"]
        collectWeb["Web 组件"]
        collectWorker["worker 组件"]
        sharedDb["同一数据库:显式授权共用"]
        collectApp --> collectWeb
        collectApp --> collectWorker
        collectWeb --> sharedDb
        collectWorker --> sharedDb
    end
    subgraph cooperation["例 3:跨项目 API"]
        review["项目 A:评价网
独立 APP 和数据库"]
        content["项目 B:内容中心
独立 APP 和数据库"]
        content -->|"通过 API 提供数据"| review
    end
    financial ~~~ collecting ~~~ cooperation

worker 是否单独成为 APP,取决于它是否是独立软件实例,不能仅因它需要独立 Deployment 就按一个 APP 处理。纯前端应用可以不需要数据库/PVC,必需资源由具体应用预设决定。

平台自有新闻 API 是平台部署的公共应用,客户购买 API 使用权益;不为每个客户复制整套公共应用。外部 RDS、云存储及公共 API 接入的供应商和实施版本仍待讨论。

依据:03 领域模型、05 费用组成。返回图集。