SuperAPI AI 工具集

db-types-precision

数据与分析

查看项目

更新于 10-15 22:11

技能介绍

用途:db-types-precision(M4)是设计轴上的类型审计模块,检查列类型是否让数据无法精确表示、比较或排序,适用于关系型与文档型数据库(如 Postgres numeric、Mongo Decimal128)。

主要能力:检查金额用 float/real/double(或 Mongo Double)存储,属严重度 5 的失败项;检查跨时区瞬时值使用无时区 timestamp/datetime,建议用 UTC 存储的 timestamptz;检查 jsonb/json 是否隐藏了本应作为一等类型列、被稳定查询或外键关联的字段;检查原生 ENUM(尤其 MySQL ENUM)与查找表的取舍;检查 MySQL utf8(3 字节,不支持 emoji)而非 utf8mb4,以及标识符/邮箱上意外的区分大小写或重音排序规则。

使用方式:Tier-0 静态检查通过 scripts/parse-schema.mjs 解析 DDL/快照,匹配金额类列名(price、amount、total、balance、cost、*_cents)与浮点类型,标记 *_at 列缺少时区,检测 json/jsonb 与 ENUM(...),读取声明的字符集与排序规则。Tier-1 用只读查询确认,例如从 information_schema.columns 筛选 real/double precision 且列名匹配金额关键词,或筛选 character_set_name = 'utf8'。结果按 finding.schema.json 输出,每条含逐字 DDL 证据、可复现查询(方法 ddl_parse / schema_introspect)与带置信度的预期影响。

限制:浮点金额无论何种范式都封顶严重度,不得弱化;jsonb 对真正灵活稀疏的数据是正确工具,仅在隐藏稳定查询的关系模式时才标记;未展示声明的排序规则不得断言排序损坏,影响需分档而非编造错误率。