MySQL 建表助手
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_a52900dd/create-table。
技能介绍
被忽略的建表细节,往往变成后期的坑
手动编写 MySQL 建表语句时,很多人会跳过字符集统一、引擎指定这类"小事",或者在主键设计上踩坑——比如把业务ID当主键,导致后期无法自增;或者忘记给字段加注释,半年后自己都看不懂order_no到底是订单号还是订单序列号。更常见的是索引命名混乱,idx_user_id和user_id_idx并存,排查慢查询时无从下手。这些细节看似无关紧要,却会让数据库可维护性直线下降。
用规则把"最佳实践"变成"必选项"
这个技能通过强制规则解决上述问题,核心能力包括:
- 命名规范:表名带模块前缀(比如
sz_对应师资系统),字段名全小写,主键固定为id(int UNSIGNED NOT NULL AUTO_INCREMENT,注释"主键ID"); - 表级设置:默认指定
CHARSET=utf8mb4和ENGINE=InnoDB,必须有表注释; - 字段设计:所有字段
NOT NULL且有默认值,字符串字段用utf8mb4,状态字段用tinyint而非ENUM,时间字段优先datetime; - 审计与软删:核心表必须有
created_at和updated_at,推荐created_by和updated_by,需要软删的表加is_deleted。
使用时只需给出表的业务描述(比如"渠道系统的订单表,包含用户ID、订单金额、状态"),技能会先确认模块前缀(比如qd_),再按规则生成DDL,并附上设计说明(比如"用tinyint存状态因为取值少")。
适用边界与注意点
- 适合结构化业务表(如用户、订单、课程),尤其是需要长期维护的核心表;
- 不适合临时表或特殊场景(比如需要存枚举集合的字段,规则明确禁止
ENUM,需改用JSON或关联表); - 生成的DDL是基础规范,如果业务有特殊需求(比如分库分表的主键策略),需要手动调整
id的类型(比如用雪花ID的bigint)。
使用场景
- 后端开发用户系统时,生成带模块前缀和审计字段的建表语句,避免主键设计错误
- DBA审核订单表时,检查索引命名是否为idx_/uniq_前缀,是否符合每表最多8个索引的限制
- 全栈开发者搭建课程表时,快速生成符合命名长度(≤32字符)和注释规范的DDL
- 初创团队建渠道系统时,生成带is_deleted软删字段和created_at/updated_at审计时间的建表语句
适合人员
- 后端工程师:需要按团队规范生成DDL,避免主键和索引设计踩坑
- DBA:需要统一团队建表规则,确保索引命名和字段类型符合标准
- 全栈开发者:搭建新系统时快速生成规范建表语句,减少手动编写出错
- 初创团队技术负责人:需要数据库设计符合工程规范,降低后期重构成本