数据库表映射开发Skill

ORM/MyBatis 实体映射、字段规范、迁移脚本的开发规范。当需要开发数据访问层(实体类、Mapper、表结构与迁移脚本)时使用。

Sky-Cube cd856cf 2.5 KB Updated

File contents

数据库表映射开发Skill

适用场景

开发数据访问层:数据库表结构设计落地、实体类与表映射(ORM/MyBatis)、字段与类型规范、迁移脚本编写。

执行步骤

  1. 表结构确认:与数据库建模对齐表名、字段、主键、索引、外键,表名/字段名统一 snake_case。
  2. 实体类设计:类名 PascalCase、字段 camelCase 与列名一一对应;明确类型映射(金额用 DECIMAL、时间用 datetime、状态用枚举+tinyint)。
  3. 映射配置:ORM 注解或 MyBatis XML 显式声明列名/类型/主键策略,禁止依赖默认映射产生隐式差异。
  4. 公共字段统一:id、create_time、update_time、create_by、update_by、deleted(逻辑删除)抽 BaseEntity,由框架统一填充。
  5. 编写迁移脚本:Flyway/Liquibase 版本化迁移,一个版本一个脚本,禁止直接改线上库;脚本包含回滚说明。
  6. 索引与约束核对:唯一索引、普通索引与查询场景一一对应;逻辑删除字段参与唯一索引时需注意冲突(需验证具体方案)。
  7. 编写数据访问代码:参数化查询防 SQL 注入,禁止字符串拼接 SQL;分页查询、批量操作、事务边界明确。

规范要点

  • 字段命名:数据库 snake_case,Java 实体 camelCase,两者显式映射,禁止混用。
  • 类型映射:金额禁止 float/double,统一 DECIMAL 或分单位整数;布尔字段明确 0/1 约定;枚举统一存码值+字典说明。
  • 主键策略:分布式场景优先雪花/自增+分表键等主流方案,禁止无策略随机 UUID 造成索引碎片(需验证)。
  • 大字段(text/blob)不参与默认查询,单独懒加载;禁止 SELECT * 全量返回。
  • 迁移脚本禁止包含敏感数据;生产执行前必须备份并走发布流程。
  • 所有写操作考虑事务边界与幂等(唯一键/版本号)。

输出模板

## 数据访问层交付清单
表结构 DDL(或迁移脚本) + 实体类 + Mapper 接口 + 类型映射说明
索引清单:索引名/字段/用途/唯一性
字段规范核对表:字段/类型/命名/默认值/是否逻辑删除

自检清单

  • 表名字段名 snake_case,实体 camelCase,显式映射
  • 金额/时间/枚举类型映射正确,无 float 金额
  • 公共字段统一 BaseEntity,迁移脚本版本化
  • SQL 全部参数化,无拼接注入风险
  • 索引与查询场景对应,事务边界明确

Sky-Cube/fullflow-dev-agent/tree/main/.claude/skills/orm-mapping commit cd856cfb12

Frequently asked questions

npx skillmds@latest add sky-cube/skill-3