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

2.2 KiB
Raw Blame History

模块数据所有权

本仓库保留一个物理 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团队所有权 以本文件和模块目录为准。