db-table-naming

📁 forge-town/skills 📅 4 days ago
1
总安装量
1
周安装量
#44694
全站排名
安装命令
npx skills add https://github.com/forge-town/skills --skill db-table-naming

Agent 安装分布

amp 1
opencode 1
kimi-cli 1
codex 1
gemini-cli 1

Skill 文档

数据库与数据表表名规范验证

任务目标

  • 验证数据库名称和数据表表名是否符合团队规范
  • 支持自动修改文件中的表名(默认行为)
  • 仅适用于数据库和数据表的名称,不涉及表字段命名

数据库命名规范

格式要求

  • 全部使用小写字母
  • 不同语义部分之间使用**下划线(_)**分隔
  • 命名长度:控制在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. 结果反馈:
    • 正确:说明符合的规则
    • 错误:指出问题并提供修正建议

批量命名审查

  1. 分类整理:将数据库名称和数据表表名分开处理
  2. 逐个验证:对每个命名执行验证
  3. 一致性检查:检查同类型命名的风格是否统一
  4. 汇总报告:提供验证结果汇总

文件命名验证与修正

默认行为:直接执行自动修改,除非用户明确说”只检查”、”只建议”、”不修改”、”不要改”等

执行流程:

  1. 识别用户意图和上下文:

    • 优先级1:用户提供了文件/文件夹路径 → 只处理指定的
    • 优先级2:用户说”数据库/表是否符合规范”且未提供路径 → 主动查找相关文件
    • 优先级3:用户说”只检查”等 → 只检查不修改
    • 优先级4:其他情况 → 默认执行修改
  2. 查找或读取文件:

    • 用户提供了文件夹路径:
      • 在指定文件夹内查找,不递归到子文件夹(除非明确要求)
      • 查找目标:*.sql、*.yml、*.yaml、*.py、*.ts 等
    • 用户提供了文件路径:直接读取该文件
    • 用户未提供路径:
      • 主动查找:**/*.sql、**/schema.sql、**/database.yml、**/models/*.py、**/entities/*.ts
      • 优先选择最相关的文件
  3. 读取文件:使用 read_file 读取目标文件内容

  4. 识别表名:识别所有数据库名称和数据表表名(排除字段名)

  5. 验证表名:对每个表名执行命名规范验证

  6. 判断是否修改:

    • 没有说”只检查”、”只建议”、”不修改”等 → 执行修改
    • 明确说”只检查”、”只建议”、”不修改”等 → 不修改,只报告
  7. 执行修改(当符合条件时):

    • 使用 edit_file 替换表名
    • 使用 limit=-1 替换所有匹配项
    • 保持原文件格式和缩进不变
  8. 验证结果:再次读取文件确认修改成功

  9. 输出报告:提供详细的修改/检查报告,包括:

    • 检查的文件路径
    • 原表名和修正后的表名对照
    • 修改理由
    • 修改位置(行号或上下文)

资源索引

  • 常见错误与修正:见 references/common-errors.md(何时读取:遇到具体错误类型或需要修正方案时)
  • 使用示例:见 references/usage-examples.md(何时读取:需要参考完整执行流程时)
  • 英文复数规则:见 references/english-plural-rules.md(何时读取:遇到不确定的英文复数形式时)

注意事项

  • 适用范围:仅验证数据库和数据表的表名,不涉及表字段命名
  • 默认行为:提供文件路径或说”数据库/表是否符合规范”时,默认执行自动修改
  • 只检查模式:用户说”只检查”、”只建议”、”不要修改”、”不修改”、”不要改”等 → 只检查不修改
  • 文件查找策略:
    • 用户提供了文件/文件夹路径 → 只处理指定的,不主动查找其他文件
    • 用户未提供路径 → 使用 glob_file 主动查找相关文件
    • 用户提供文件夹 → 只在该文件夹内查找,不递归到子文件夹(除非明确要求)
  • 文件修改原则:
    • 使用 limit=-1 替换所有匹配项
    • 保持原文件格式和缩进不变
    • 修改前读取,修改后验证
    • 提供详细的修改报告,包括文件路径

使用场景

  • 新建数据库/表前的表名验证
  • 代码审查阶段的表名规范检查
  • 团队培训中的规范讲解
  • 数据库重构时的表名规范化
  • 批量审查现有数据库和数据表表名一致性
  • 自动修改文件中的表名(SQL文件、配置文件、代码文件等)——默认行为
  • 只检查不修改(用户明确要求时)