db-table-naming
数据库与数据表表名规范验证
任务目标
- 验证数据库名称和数据表表名是否符合团队规范
- 支持自动修改文件中的表名(默认行为)
- 仅适用于数据库和数据表的名称,不涉及表字段命名
数据库命名规范
格式要求
- 全部使用小写字母
- 不同语义部分之间使用**下划线(_)**分隔
- 命名长度:控制在2-4个语义段
核心原则
- 简洁表意:直接体现数据库的业务归属或用途
- 避免冗余:不包含无意义的缩写或重复字符
示例
| 正确示例 | 错误示例 | 错误原因 |
|---|---|---|
user_center |
UserCenter |
包含大写字母 |
order_management |
orderManagement |
使用驼峰命名 |
goods_inventory |
goodsinventory |
缺少分隔符 |
数据表表名命名规范
说明:仅验证数据表的表名(table name),不涉及表字段(column/field)命名。
格式要求
- 基本结构:「形容词 + 名词(复数)」
- 全部使用小写字母
- 不同语义部分之间使用**下划线(_)**分隔
- 最后一个名词必须采用英文复数形式
核心原则
- 形容词:体现表的业务属性或范围(如
user、order、system) - 名词:体现表存储的核心数据对象,必须使用复数形式
- 见名知意:整体表意清晰,避免无意义缩写
- 长度控制:控制在3-4个语义段内
示例
| 正确示例 | 错误示例 | 错误原因 |
|---|---|---|
user_infos |
user_info |
名词为单数 |
order_details |
OrderDetails |
大写+驼峰 |
system_logs |
sys_log |
缩写不清+单数 |
vip_coupons |
vip_coupon |
名词为单数 |
order_children |
order_childs |
复数形式错误 |
补充规则
- 单名词扩展:
log→system_logs,product→product_items - 避免过长:
user_order_addresses合理,user_order_shipping_receive_addresses需简化
验证流程
单个命名验证
- 识别类型:数据库名称或数据表表名
- 逐项检查:按验证要点逐一检查
- 结果反馈:
- 正确:说明符合的规则
- 错误:指出问题并提供修正建议
批量命名审查
- 分类整理:将数据库名称和数据表表名分开处理
- 逐个验证:对每个命名执行验证
- 一致性检查:检查同类型命名的风格是否统一
- 汇总报告:提供验证结果汇总
文件命名验证与修正
默认行为:直接执行自动修改,除非用户明确说"只检查"、"只建议"、"不修改"、"不要改"等
执行流程:
-
识别用户意图和上下文:
- 优先级1:用户提供了文件/文件夹路径 → 只处理指定的
- 优先级2:用户说"数据库/表是否符合规范"且未提供路径 → 主动查找相关文件
- 优先级3:用户说"只检查"等 → 只检查不修改
- 优先级4:其他情况 → 默认执行修改
-
查找或读取文件:
- 用户提供了文件夹路径:
- 在指定文件夹内查找,不递归到子文件夹(除非明确要求)
- 查找目标:
*.sql、*.yml、*.yaml、*.py、*.ts等
- 用户提供了文件路径:直接读取该文件
- 用户未提供路径:
- 主动查找:
**/*.sql、**/schema.sql、**/database.yml、**/models/*.py、**/entities/*.ts - 优先选择最相关的文件
- 主动查找:
- 用户提供了文件夹路径:
-
读取文件:使用
read_file读取目标文件内容 -
识别表名:识别所有数据库名称和数据表表名(排除字段名)
-
验证表名:对每个表名执行命名规范验证
-
判断是否修改:
- 没有说"只检查"、"只建议"、"不修改"等 → 执行修改
- 明确说"只检查"、"只建议"、"不修改"等 → 不修改,只报告
-
执行修改(当符合条件时):
- 使用
edit_file替换表名 - 使用
limit=-1替换所有匹配项 - 保持原文件格式和缩进不变
- 使用
-
验证结果:再次读取文件确认修改成功
-
输出报告:提供详细的修改/检查报告,包括:
- 检查的文件路径
- 原表名和修正后的表名对照
- 修改理由
- 修改位置(行号或上下文)
资源索引
- 常见错误与修正:见 references/common-errors.md(何时读取:遇到具体错误类型或需要修正方案时)
- 使用示例:见 references/usage-examples.md(何时读取:需要参考完整执行流程时)
- 英文复数规则:见 references/english-plural-rules.md(何时读取:遇到不确定的英文复数形式时)
注意事项
- 适用范围:仅验证数据库和数据表的表名,不涉及表字段命名
- 默认行为:提供文件路径或说"数据库/表是否符合规范"时,默认执行自动修改
- 只检查模式:用户说"只检查"、"只建议"、"不要修改"、"不修改"、"不要改"等 → 只检查不修改
- 文件查找策略:
- 用户提供了文件/文件夹路径 → 只处理指定的,不主动查找其他文件
- 用户未提供路径 → 使用
glob_file主动查找相关文件 - 用户提供文件夹 → 只在该文件夹内查找,不递归到子文件夹(除非明确要求)
- 文件修改原则:
- 使用
limit=-1替换所有匹配项 - 保持原文件格式和缩进不变
- 修改前读取,修改后验证
- 提供详细的修改报告,包括文件路径
- 使用
使用场景
- 新建数据库/表前的表名验证
- 代码审查阶段的表名规范检查
- 团队培训中的规范讲解
- 数据库重构时的表名规范化
- 批量审查现有数据库和数据表表名一致性
- 自动修改文件中的表名(SQL文件、配置文件、代码文件等)——默认行为
- 只检查不修改(用户明确要求时)
More from forge-town/skills
create-skills
Use when 需要创建新技能或更新现有技能,将领域知识、工作流程、脚本和工具集成打包为可复用 Skill;生成的新技能须使用中文编写。触发词:创建新技能、更新skill、新建技能包、扩展AI能力。
36classname-refactor
自动检查并转换 React/Vue 文件中 className 的模板字符串为 cn 函数调用;支持递归扫描文件夹、详细报告所有 className 位置
22storybook-best-practice
Must follow when 创建或维护 Storybook Stories,确保组件文档命名、参数定义和装饰器配置符合项目 Storybook 编写规范。触发词:创建storybook、story规范、组件故事文档审查。
13check-barrel-export
Use when 需要生成、优化、修复或检查项目中所有 index 文件(桶导出),确保 index.ts/index.js 均遵循标准桶导出规范。触发词:生成barrel导出、优化index文件、检查桶导出规范。
5implement-trpc-query
Use when 需要实现 tRPC 按需查询(on-demand query)模式,确保查询逻辑和数据获取方式符合项目 tRPC 规范和最佳实践。触发词:tRPC按需查询、实现tRPC查询、on-demand查询模式。
5