Files
tiku-backend.net/docs/architecture/module-data-ownership.md
xiong 33375a38d7
Some checks failed
ci / release-gate (push) Has been cancelled
refactor(architecture): harden module boundaries
2026-08-04 12:10:36 +08:00

28 lines
2.2 KiB
Markdown
Raw 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.

# 模块数据所有权
本仓库保留一个物理 `TikuDbContext`、一个 EF Model、一个 Migration Snapshot 和一个请求级工作单元。
业务实现不得直接依赖具体 Context而应依赖下表中的持久化能力。所有能力在同一作用域内解析到同一个
`TikuDbContext`因此租户过滤、SaveChanges 拦截器、ChangeTracker 和本地事务语义保持一致。
| 能力 | 所有者 | 数据范围 |
| --- | --- | --- |
| `IIdentityPersistence` | Identity/Auth | 用户、身份、成员关系、认证会话、短信验证 |
| `ITenancyPersistence` | Tenancy | 租户、域名、品牌、运行时配置、外部身份源和租户密钥 |
| `ITenantAdministrationPersistence` | TenantAdmin | 班级、学生档案、跟进、主题、徽章和租户账务策略 |
| `ICatalogPersistence` | Catalog | 地区、院校、专业、科目、分类、Taxonomy 和分数线 |
| `IQuestionBankPersistence` | QuestionBank | 题库、题目版本、内容节点、集合、组卷蓝图和导入 |
| `IContentAssetPersistence` | Content/Assets | 词汇、手册、文件、图片、视频和访问/扫描事件 |
| `ILearningPersistence` | Learning | 练习、答题、错题、收藏、报告、学习积分流水 |
| `ICommercePersistence` | Commerce | 商品、订单、支付、权益、优惠券、退款、对账和调账 |
| `IPointsPersistence` | Points | 积分任务、领取和兑换 |
| `IGrowthPersistence` | Growth | 推荐、CRM 和佣金结算 |
| `IJobsOperationsPersistence` | Platform Core/Jobs | 权限、审计、后台任务、通知和授权缓存失效 |
| `IPlatformControlPlanePersistence` | Platform | SaaS 商品目录、订阅、平台账单、治理和导入控制面 |
跨模块读取优先调用数据所有者的 Application 查询合同;跨模块修改调用所有者命令合同,不传递
tracked entity 或 `IQueryable`。控制面、平台题库、平台账单、Owner 激活和 Bootstrap 允许使用显式的
组合持久化能力,但不得在普通功能模块注册或注入这些组合能力。
数据库结构变更仍由单一维护者串行生成和合并 Migration/Snapshot。Gitea 不使用 CODEOWNERS团队所有权
以本文件和模块目录为准。