docs-03-header-template.md 4.07 KB

03-数据库设计文档

  • Schema: {{schema_name}}
  • Migration 清单: sql/migrations/V*.sql(由 Flyway 顺序 apply)
  • 生成方式: 由 A3 db-design-gen 基于 docs/01-需求清单/<module>/ 下各 REQ 卡片(文件名 == req_id)正向设计生成(schema SSoT)。

项目标准列约定

下文每张业务表的字段清单都自动包含以下 11 个基础标准列(匈牙利前缀 i int / s varchar / t datetime / b bit / d decimal),所有表通用;在此之上按表位追加专属标准列:主表额外加 4 个审核标准列(共 15 列),从表额外加 1 个标准列 sParentId(共 12 列)。渲染时由 docs-03-table-template.md 模板内置原样输出。

主表 = 「表清单」中的第一张表;从表 = 其余各表。

基础标准列(11 列,所有表)

列名 类型 可空 主键 默认 说明
iIncrement int 整数主键 ID(标准列);DDL 译为 PRIMARY KEY + AUTO_INCREMENT
sId varchar(50) 业务 ID(标准列,对外暴露的字符串标识,如 UUID / 人类可读编号)
sBrandsId varchar(50) 1111111111 品牌 ID(多租户隔离,标准列);DDL 译为 DEFAULT '1111111111'
sSubsidiaryId varchar(50) 1111111111 子公司 ID(组织层级隔离,标准列);DDL 译为 DEFAULT '1111111111'
sMakePerson varchar(50) 当前登录用户名 制单人(标准列);非 SQL 默认——应用在 insert 时写入当前登录用户名,DDL 仅写 varchar(50) NOT NULL(在该列 COMMENT / 表业务注记里注明 app-assigned)
tCreateDate datetime 当前时间 记录创建时间(标准列);DDL 译为 DEFAULT CURRENT_TIMESTAMP
tUpdateDate datetime 当前时间戳 记录更新时间(标准列);DDL 译为 DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP(行更新自动刷新)
iOrder int 数据行条数+1 排序号;非 SQL 默认——应用在 insert 时按 count+1 赋值,DDL 仅写 int NOT NULL(不写 DEFAULT 表达式,在该列 COMMENT / 表业务注记里注明 app-assigned)
bInvalid bit 是否作废(标准列);非 SQL 默认——应用 insert 时赋值(如 0),DDL 仅写 bit NOT NULL
sFormId varchar(50) 界面 ID(标准列);非 SQL 默认——应用维护,DDL 仅写 varchar(50) NOT NULL
sMemo LONGTEXT 备注(标准列)

从表专属标准列(从「表清单」第二张表起,即除第一张主表外的所有表都加,插入位置紧随 sId 之后):

列名 类型 可空 主键 默认 说明
sParentId varchar(50) 业务父级 ID(标准列);仅从表有,紧随 sId 之后

主表专属标准列(仅「表清单」第一张主表加,所有主表无条件包含,共 4 列;插入位置紧随 bInvalid 之后,即在 bInvalidsFormId 之间):

列名 类型 可空 主键 默认 说明
bCheck bit 是否审核(标准列);非 SQL 默认——应用 insert 时赋值(如 0),DDL 仅写 bit NOT NULL
tCheckDate datetime 审核时间(标准列);非 SQL 默认——审核时由应用写入,DDL 仅写 datetime NOT NULL
sCheckPerson varchar(50) 审核人(标准列);非 SQL 默认——审核时由应用写入,DDL 仅写 varchar(50) NOT NULL
sStatus varchar(50) 审核状态(标准列);非 SQL 默认——应用维护,DDL 仅写 varchar(50) NOT NULL

字典 / 辅助表如有豁免,在该表业务注记里注明豁免原因。

ER 关系概览

{{er_overview}}

表清单

{{#each tables}}

  • {{table_name}} — {{purpose}} {{/each}}