开启 3 天免费试用
注册即可免费体验全部高级功能。
*仅限新用户;每位用户只能获得一次试用。


要用 AI 编写数据库模式文档,只导出只读元数据,并核验每项生成结论。遵循如何使用 AI限定范围;不得发送凭据或业务行。
关键要点
- 先冻结数据库、环境、模式范围与版本。
- 用只读、最小权限身份提取定义与系统目录元数据。
- 不向模型提交凭据、连接串、查询结果或业务行。
- PK、FK 与约束才是关系证据,禁止按名称猜测。
- 保留未知项与冲突,不让 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是另一套有防护的工作流。
模型包只包含已审查元数据、稳定证据标识、输出模板和明确禁令:
把给定模式元数据整理为对象参考。
精确保留限定标识符、类型、表达式、约束名称、
列序与证据标识。禁止按名称推断关系。
禁止编造业务含义、负责人、敏感度、基数或示例。
无证据的结论写成 [VERIFY],并列出解决它所需的证据。
不得索取凭据、连接串、数据库访问或行数据。
返回正文、关系表与图表源文件;不得返回可执行 DDL。
输出分为范围、对象清单、列参考、约束、关系、视图/计算行为、权限边界、未知项和证据索引。每项结论携带证据标识,审查者才能追溯。
图表只是同一证据的派生视图。要求输出节点与有标签的连线,再按AI 架构图工作流检查范围与可读性。漏边、外键反向或虚构基数,即使图很漂亮也是缺陷。
第一轮由数据库负责人或工程师做结构核对:范围内对象各出现一次;标识符、类型、默认值、表达式和序号位置一致;约束列及顺序一致;外键方向与动作正确;范围内视图、触发器、策略和授权都被表示;每条图表连线都有证据;交付物中没有可执行语句或行数据。
第二轮由对象负责人和领域负责人复核含义、生命周期、敏感度标签与运维说明。AI 无法只凭元数据判断列为何存在、哪个表权威或概念归谁所有。冲突解释要并列保留,直至责任负责人决策。
使用合成场景复核:可空外键、复合唯一约束、兼容视图下的重命名列、延迟关系,以及没有主键的表。审查者应能定位控制证据并说明未知项。
文档与模式版本、提取时间、查询/工具版本和证据清单一起保存。每次迁移后,通过同一只读路径重建元数据,先比较对象级事实,再让 AI 总结变更。
| 漂移类别 | 示例 | 需要的复核 |
|---|---|---|
| 新增 | 新表、列、约束、视图 | 完整性与所有权 |
| 行为变化 | 默认值、触发器、策略、检查约束变化 | 应用与运维影响 |
| 引用变化 | 键、动作、列序变化 | 关系与完整性 |
| 访问变化 | 授权、负责人、策略变化 | 安全复核 |
| 删除/重命名 | 删除或重命名对象 | 使用方与迁移 |
| 仅文档变化 | 负责人批准的含义澄清 | 证据与版本 |
不要让重新生成的正文隐藏破坏性变更。每项摘要链接到迁移和前后元数据。若文档与已部署模式不一致,以已部署模式为结构事实,把差异作为问题跟踪,而不是让 AI 选一个版本。
不可以。它不含业务行,却可能暴露对象名、内部结构、注释、函数、策略、所有权与安全假设。必须按组织分类和获批工具规则审查并最小化。
不应。由人在只读、最小权限路径提取获批元数据。模型只接收有界材料,不能得到可复用凭据或探索权限。
不能。同名只是假设,不是证据。使用已强制执行的键元数据或明确标记的代码、规范、负责人证据,并区分未强制执行的关系。
不一样。本流程聚焦已实现的模式对象、精确定义、约束、关系与版本漂移;数据字典更深入描述字段含义、单位、受控词汇、所有权、数据血缘与治理。
必要时可把系统目录定义作为引用证据,但不要在本流程让模型生成可执行 DDL。变更属于单独审查的迁移流程。
记录精确定义或稳定引用、依赖、执行上下文与已核验用途。目录事实与人工解释分开,并标明数据库引擎特有的行为。
并列保留,指出结构断言与语义断言,交给责任负责人处理。不要让 AI 选择看起来更合理的说法。
任何迁移或相关访问策略变化后都应重新生成。先比较确定性元数据,复核受影响章节,再发布新版本,不静默覆盖历史。
information_schema.columns — https://www.postgresql.org/docs/18/infoschema-columns.htmlpg_dump — https://www.postgresql.org/docs/18/app-pgdump.htmlSources checked 2026 年 9 月 4 日。
注册即可免费体验全部高级功能。
*仅限新用户;每位用户只能获得一次试用。