基础指南

数据建模与业务语义

把业务对象、关系、事件和指标映射到可用的数据模型。

更新于
方案与计划 / 数据与知识定位整体框架 ↗
方案与计划 × 数据与知识:当前工作是统一业务语义,产出实体、状态与不变量;显示相关阶段和相邻领域
本页目录

先统一业务语义

同一个“已完成”可能指回复已生成、工程师已审核或工单已关闭。先建立术语表,再设计表与接口。实体标识应稳定,显示名称和自然语言描述不能替代主键。

贯穿案例的最小模型

实体关键字段不变量
Ticketid、tenant_id、device_model、status租户归属不可由客户端覆盖
Documentid、tenant_id、version、effective_at有明确生效版本与访问范围
Chunkid、document_id、content_hash能追溯原文且随删除失效
Draftid、ticket_id、source_version、status草稿不能自动转为已发送
Reviewdraft_id、reviewer_id、decision审核身份与草稿版本绑定
AuditEventactor、action、resource、time能关联一次业务动作

多租户系统中,关联查询同样必须校验租户;不能只在最外层列表接口过滤。

状态与事件

工单状态与草稿状态分开。草稿可经历“生成中 → 待审核 → 已接受 / 已驳回”;失败生成进入失败状态而非待审核。审核草稿时带上修订号,版本不符则要求刷新,避免审核过时内容。

事件记录已经发生的事实,例如 DraftGenerated 或 DraftReviewed;命令表达待执行的意图。重复事件使用稳定事件编号去重。需要跨服务可靠发消息时,可评估事务性 outbox;同时解释消费者重试与补偿,不能宣称消息系统自动保证业务恰好执行一次。

数据质量检查

入口检查必填、类型、唯一性、引用存在与业务范围。定期检查空型号、孤立草稿、重复业务编号和过期手册。先将异常隔离并记录原因,避免为了让导入成功随意填默认值。

模型变化与迁移

新增字段先允许旧版本继续读取,回填并验证,再收紧约束。破坏性删除与不可逆迁移需要单独计划恢复;回退应用不能自动恢复被删除的数据。

练习与评审

提交实体关系表、状态转移表和五条不变量,用错误租户、未知文档、重复事件和过期修订构造反例。数据库约束的语法与行为可查阅 PostgreSQL 官方约束文档。

参考阅读与使用边界

本页为基础指南;生产操作需结合实际版本、授权环境与审核证据验证。

Markdown 原文反馈本页问题 ↗