111 lines
4.9 KiB
Markdown
111 lines
4.9 KiB
Markdown
# G02 领域概念关系
|
||
|
||
2026-10-13 · 业务基线 0.15 · 图集版本 0.18。概念图不等于数据库 ER 图或部署架构。投影用 SVG 尚未按本次文字重绘。
|
||
|
||
**项目代表业务目标。应用指功能,例如邮箱应用。初级版本不选择组件。域名是需要购买的资源。**
|
||
|
||

|
||
|
||
```mermaid
|
||
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 删除自动取消。
|
||
|
||
## 工单、发布与购买项
|
||
|
||

|
||
|
||
```mermaid
|
||
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
|
||
```
|
||
|
||
发布组合表达一组实际版本,不要求多个仓库拥有同一个提交号;业务范围、技术组件和购买项不应合并成一个对象。
|
||
|
||
## 三个具体例子
|
||
|
||

|
||
|
||
```mermaid
|
||
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 领域模型](../03-系统架构与领域模型.md)、[05 费用组成](../05-商业模式与成本指标.md)。[返回图集](README.md)。
|