如何用 AI 编写数据库模式文档:只读元数据、约束与关系核验

如何用 AI 编写数据库模式文档:只读元数据、约束与关系核验

Olivia Park
2026年9月4日· 9 分钟阅读

要用 AI 编写数据库模式文档,只导出只读元数据,并核验每项生成结论。遵循如何使用 AI限定范围;不得发送凭据或业务行。

关键要点

  • 先冻结数据库、环境、模式范围与版本。
  • 用只读、最小权限身份提取定义与系统目录元数据。
  • 不向模型提交凭据、连接串、查询结果或业务行。
  • PK、FK 与约束才是关系证据,禁止按名称猜测。
  • 保留未知项与冲突,不让 AI 自动补全。
  • 技术负责人与业务负责人分别复核对应事实。
  • 文档随迁移版本化并做差异比较。

用 AI 编写数据库模式文档前,交付物该如何定义?

“记录数据库”不是有界任务。先写范围卡,明确系统和读者。

字段合成示例
数据库角色订单服务 PostgreSQL 数据库
环境获批生产模式定义
引擎/版本PostgreSQL 18
包含模式orders、catalog
排除模式认证与审计存储
版本证据迁移版本 2026_09_04_01
读者应用工程师与值班人员
交付物对象参考、关系表、开放问题
禁止操作行查询、DDL、写入、未经批准的导出

决定文档描述逻辑概念、物理实现,还是二者兼有。物理参考要保留精确标识符、类型、默认值、可空性与约束;业务含义必须有负责人证据并单独标记。混在一起,会让生成说明显得比来源更权威。

还要写清它不是什么。API 行为属于API 文档,服务边界属于架构图,上线顺序属于迁移规划。可以互链,但不能互相替代。

建立只读模式文档工作流

使用专用身份,只能查看所需系统目录与模式定义,不能拥有对象、写数据、执行迁移或读取无关应用表。OWASP 建议最小权限、分离数据库账户,并避免应用使用管理员凭据。[4]文档工具也应遵循同一原则。

不要让凭据出现在提示词、命令行历史、导出文件、截图或生成的正文中。优先使用组织批准的凭据代理或本地安全连接配置。若命令会把密码或完整连接串放在参数里,应停止并改用获批访问方式。

PostgreSQL pg_dump --schema-only 导出对象定义而非数据,但结果仍可能暴露名称、注释、负责人、函数、策略或内部结构。[3]因此它仍是敏感元数据,必须先在本地审查并最小化。“仅模式”不等于“公开”或“可交给任意模型”。

采集清单至少记录引擎与服务器版本、数据库与包含的模式、去除秘密后的系统目录查询或导出命令、提取时间、迁移版本、操作者、获批存储位置、排除对象类型,以及权限造成的缺口。若全量导出过宽,就只查询获批的信息模式视图和系统目录。查询由人在受控环境执行,不把数据库凭据交给 AI 代理。

先清点对象,再写说明

建立确定性对象清单:模式、表、视图、物化视图、序列及范围内的其他类型。保留完整限定名称。每个对象记录类型、必要时的负责人角色、用途证据、依赖关系,以及当前、已弃用或未解决状态。

模型解释不了的对象也不能静默省略。把用途标为 VERIFY,同时生成指定负责人的问题。对视图,要区分视图定义与猜测的业务摘要;对分区表,记录父表和分区策略;对生成对象或引擎特有对象,保留原定义并标记可移植性限制。

怎样把列记录为物理事实?

PostgreSQL 的 information_schema.columns 提供可访问列的名称、序号位置、默认值、可空性和数据类型等元数据。[1]只提取读者需要的字段,不把系统目录值包装成业务含义。

属性证据与复核规则
限定对象与列保留精确拼写和大小写
序号位置从系统目录读取,不让 AI 猜显示顺序
数据类型必要时保留引擎特有细节
可空性记录强制状态,语义另行说明
默认值/生成表达式保留定义并复核副作用
标识/序列记录生成机制与所有权
排序规则比较或排序依赖时记录
注释标记为存储注释,不视为自动核验的真相
业务说明引用负责人或获批规范
未知项保留 VERIFY 与具名问题

不要加入生产样例值来“解释清楚”列。只有负责人确认后才使用合成值。若列表达式或函数复杂,可采用用 AI 解释代码的方法:提供精确、有界定义,要求逐项解释,再用可执行行为或负责人知识核验。

只按证据编写数据库关系文档

关系必须来自主键、唯一约束、外键和相关排除约束,而不是相似名称。PostgreSQL table_constraints 会标识约束类型以及是否可延迟。[2]还要结合键与引用元数据,才能写出两侧对象及精确列序。

每条关系记录来源/目标限定对象、有序列、约束名称和类型、更新与删除动作、必要时的可延迟性、由可空性与应用契约共同决定的可选性,以及证据来源和提取版本。

两个表都有 customer_id 并不能证明存在关系。缺少外键也不能证明没有应用层关系;后者只有在代码、获批规范或负责人提供证据时才能记录,并明确标为未强制执行。复合键必须保持列序;自引用、中间表、多态关联与跨库链接都需要显式证据。

应记录哪些约束、索引与行为边界?

约束定义数据库接受或拒绝的状态,应单独成节。记录主键、唯一约束、外键、检查约束、非空约束与排除规则;精确保留表达式,再补一段经复核的人类说明。

索引是实现对象,不自动等于业务规则。唯一索引可能强制规则,普通索引多数描述访问策略。必要时记录表达式、列序、排序方向、谓词与包含列,但不能仅凭元数据承诺性能。

默认值、触发器、生成列、行级策略、函数与授权都可能改变可观察行为。范围内就按对象类型记录,但不让 AI 执行或改写定义。若文档暴露了疑似问题,应走常规数据库变更流程;用 AI 编写和检查 SQL是另一套有防护的工作流。

限定 AI 数据库模式文档的生成任务

模型包只包含已审查元数据、稳定证据标识、输出模板和明确禁令:

把给定模式元数据整理为对象参考。
精确保留限定标识符、类型、表达式、约束名称、
列序与证据标识。禁止按名称推断关系。
禁止编造业务含义、负责人、敏感度、基数或示例。
无证据的结论写成 [VERIFY],并列出解决它所需的证据。
不得索取凭据、连接串、数据库访问或行数据。
返回正文、关系表与图表源文件;不得返回可执行 DDL。

输出分为范围、对象清单、列参考、约束、关系、视图/计算行为、权限边界、未知项和证据索引。每项结论携带证据标识,审查者才能追溯。

图表只是同一证据的派生视图。要求输出节点与有标签的连线,再按AI 架构图工作流检查范围与可读性。漏边、外键反向或虚构基数,即使图很漂亮也是缺陷。

如何对照真源复核草稿?

第一轮由数据库负责人或工程师做结构核对:范围内对象各出现一次;标识符、类型、默认值、表达式和序号位置一致;约束列及顺序一致;外键方向与动作正确;范围内视图、触发器、策略和授权都被表示;每条图表连线都有证据;交付物中没有可执行语句或行数据。

第二轮由对象负责人和领域负责人复核含义、生命周期、敏感度标签与运维说明。AI 无法只凭元数据判断列为何存在、哪个表权威或概念归谁所有。冲突解释要并列保留,直至责任负责人决策。

使用合成场景复核:可空外键、复合唯一约束、兼容视图下的重命名列、延迟关系,以及没有主键的表。审查者应能定位控制证据并说明未知项。

让文档随迁移版本化

文档与模式版本、提取时间、查询/工具版本和证据清单一起保存。每次迁移后,通过同一只读路径重建元数据,先比较对象级事实,再让 AI 总结变更。

漂移类别示例需要的复核
新增新表、列、约束、视图完整性与所有权
行为变化默认值、触发器、策略、检查约束变化应用与运维影响
引用变化键、动作、列序变化关系与完整性
访问变化授权、负责人、策略变化安全复核
删除/重命名删除或重命名对象使用方与迁移
仅文档变化负责人批准的含义澄清证据与版本

不要让重新生成的正文隐藏破坏性变更。每项摘要链接到迁移和前后元数据。若文档与已部署模式不一致,以已部署模式为结构事实,把差异作为问题跟踪,而不是让 AI 选一个版本。

发布检查表

  • 数据库、环境、引擎版本、模式与迁移版本明确。
  • 元数据来自只读、最小权限身份。
  • 模型包没有凭据、连接串、业务行或客户数据。
  • 范围内对象与列都和真源一致。
  • 默认值、可空性、生成表达式与约束保持精确。
  • 每条关系都有主键、外键、约束、代码、规范或负责人证据。
  • 从未仅凭名称推断连线或基数。
  • 未知和冲突结论仍清晰可见。
  • 图表连线与关系表一致。
  • 技术和业务负责人已批准各自负责的结论。
  • 文档已版本化,并定义迁移触发的更新规则。

常见问题

用 AI 编写数据库模式文档时,可以上传仅模式元数据吗?

不可以。它不含业务行,却可能暴露对象名、内部结构、注释、函数、策略、所有权与安全假设。必须按组织分类和获批工具规则审查并最小化。

用 AI 编写数据库模式文档时,应让 AI 直接连接数据库吗?

不应。由人在只读、最小权限路径提取获批元数据。模型只接收有界材料,不能得到可复用凭据或探索权限。

用 AI 编写数据库模式文档时,能按同名列推断外键吗?

不能。同名只是假设,不是证据。使用已强制执行的键元数据或明确标记的代码、规范、负责人证据,并区分未强制执行的关系。

用 AI 编写数据库模式文档和起草数据字典一样吗?

不一样。本流程聚焦已实现的模式对象、精确定义、约束、关系与版本漂移;数据字典更深入描述字段含义、单位、受控词汇、所有权、数据血缘与治理。

用 AI 编写数据库模式文档时,应包含 SQL DDL 吗?

必要时可把系统目录定义作为引用证据,但不要在本流程让模型生成可执行 DDL。变更属于单独审查的迁移流程。

用 AI 编写数据库模式文档时,如何记录视图和触发器?

记录精确定义或稳定引用、依赖、执行上下文与已核验用途。目录事实与人工解释分开,并标明数据库引擎特有的行为。

用 AI 编写数据库模式文档时,系统目录与负责人描述冲突怎么办?

并列保留,指出结构断言与语义断言,交给责任负责人处理。不要让 AI 选择看起来更合理的说法。

用 AI 编写数据库模式文档后,何时重新生成?

任何迁移或相关访问策略变化后都应重新生成。先比较确定性元数据,复核受影响章节,再发布新版本,不静默覆盖历史。

来源

  1. PostgreSQL: information_schema.columns — https://www.postgresql.org/docs/18/infoschema-columns.html
  2. PostgreSQL: table constraints — https://www.postgresql.org/docs/18/infoschema-table-constraints.html
  3. PostgreSQL: pg_dump — https://www.postgresql.org/docs/18/app-pgdump.html
  4. OWASP Database Security Cheat Sheet — https://cheatsheetseries.owasp.org/cheatsheets/Database_Security_Cheat_Sheet.html

Sources checked 2026 年 9 月 4 日。

延伸阅读

开启 3 天免费试用

注册即可免费体验全部高级功能。

*仅限新用户;每位用户只能获得一次试用。

如何用 AI 编写数据库模式文档:只读元数据、约束与关系核验 | AethoVPN