做个人项目或者毕设时,你是不是也遇到过这种情况:
-
需求只有一句话:“我要做一个自习室预约管理系统”,然后对着空屏幕发呆,不知道该建几张表。
-
设计随心所欲:表名有时候用单数有时候用复数,主键有时候叫
id有时候叫uid。 -
文档永远滞后:代码写完了,数据库设计文档还没写,或者文档跟代码根本对不上。
-
后期维护火葬场:字段全是
status,但不知道status=2到底代表“已完成”还是“已取消”,因为当初建表没写注释。
为了解决这些痛点,我开发了 database-designer-lite 这个 Skill。它不追求企业级的复杂(比如各种复杂的继承表、分库分表),而是专注于个人和中小型项目,快速生成规范、干净、可扩展的数据库设计方案。
Skill 介绍
名称:database-designer-lite
适用场景:个人开发、毕业设计、最小可行性产品快速验证。
核心能力:专为个人项目打造的“设计规矩”
-
智能实体分析:告别从零开始的迷茫。只需一个项目名,Skill 就能自动分析出核心业务对象,为你搭好骨架。
-
设计规范统一:内置一套严格的设计准则,让你的数据库不再“随心所欲”:
-
拒绝硬编码:采用字典表设计,让角色、类型扩展无需改动表结构。
-
注释即文档:为字段添加注释,杜绝“天书”代码。
-
生命周期管理:为业务数据添加逻辑删除字段,安全可靠。
-
命名与范式:严格遵循 3NF、蛇形命名法、主键外键规范等最佳实践。
-
-
文档代码一体化:不再有滞后的文档。一次生成包含 实体关系、表结构 的 Markdown 文档和 可直接运行 的 SQL 脚本,两者完全同步。
-
一键本地保存:设计成果自动保存为本地
.md文件,方便你随时查阅、归档或分享给他人。
效果展示
让我们来看一个真实的对比。
我用相同的 Prompt 分别测试了 直接生成 和 使用 Skill 生成 的效果。
Prompt:
设计一个项目Issue分诊系统数据库表结构,使用mysql数据库,表结构保存为markdown文件。
需求:
用户可以登录系统
系统需要同步项目的Issue信息
Issue可以被标记为不同类型
Issue可以添加多个标签
维护者可以给Issue指派负责人
系统需要记录Issue的处理状态
用户可以对Issue添加评论
没有使用 Skill 时
生成的表结构很复杂,对于只想做个人项目,过于复杂了。
问题 1:过度设计,表结构复杂
AI 经常会“炫技”,生成了一堆个人项目根本用不上的复杂结构。
例如,还没开始写业务代码,就被迫要先维护10多张技术支撑表。这种“企业级”的复杂度,对于个人项目来说简直是灾难。
问题 2:生成的文档混乱,没有统一规范
输出内容往往是散乱的:一会儿是 SQL 代码,一会儿是文字描述,缺乏结构化。
-
表名风格不统一(有的单数有的复数)。
-
字段定义随意(有的用
ENUM,有的用TINYINT)。 -
缺少核心的实体关系图(ERD)描述,让人摸不着头脑。
问题 3:数据库字段没有统一约束,维护靠猜
使用 database-designer-lite 后
Skill 生成的设计克制且规范,完全遵循个人项目的“够用就好”原则。
1. 表数量合理,聚焦核心
Skill 明白这是“个人项目”,拒绝生成复杂的日志表,只保留核心业务实体:
users、projects、issues、comments等。
表数量控制在 15 张以内,既满足了需求,又不会让你在建表时就感到疲惫。
2. 可拓展性强
根据实体之间关系,设计表结构,多对多关系单独设计为表。
3. 遵循数据库设计规范
-
3NF 范式:拒绝冗余数据。
-
统一命名:全小写蛇形命名,主键、外键遵循规范。
-
生命周期管理:自动添加
deleted_at逻辑删除字段,数据安全有保障。
4. 规范的文档和 SQL 语句
生成的 SQL 脚本自带详细注释
同时生成对应的 Markdown 文档,文档与代码完美同步,直接归档即可。
Skill 编写思路与技巧
怎么写好这样一个 Skill?我总结了以下几点经验:
1. 结构化思维:6 步设计法
不要让 AI “凭感觉”生成,要在 Prompt 里规定严格的思考步骤(Workflow):
-
Analyze System Functions:先分析功能(即使输入很短,也要推导功能模块)。
-
Extract Business Entities:从功能中提取名词(实体)。
-
Derive Entity Relationships:确定实体间的动词(关系)。
-
Design Database Tables:映射为表,应用范式。
-
Generate SQL:写代码。
-
Generate Document:写文档。
在 Skill 的定义中明确这 6 步,AI 的输出质量会显著提高。
2. 规则
为了防止 AI 放飞自我,必须在 Prompt 里设置“负面约束”和“强制要求”:
-
DO NOT create generic EAV tables (No
data1,data2fields). -
ALWAYS use Numeric types for status, NEVER use ENUM or VARCHAR.
-
MUST add SQL comments for every column.
3. 规范化输出文件
很多 Skill 止步于对话框输出。但对于设计类任务,用户通常需要一个文件。
我在 Skill 的 Workflow 最后一步增加了:
Save to File: Use the
Writetool to save the complete output to{project_name}_design.md.
这样,用户交互结束后,直接在目录里就能看到文件。
具体使用方法
安装
该 Skill 已打包在 GitHub,支持直接 Clone 使用。
下载地址:https://github.com/RainFly-code/database-designer-lite.git
或者你可以在命令台直接使用以下命令:
npx skills add https://github.com/RainFly-code/database-designer-lite.git
使用
在 TRAE 中加载该 Skill 后,直接在对话框中输入类似指令:
“帮我设计一个个人博客数据库,用 MySQL。”
“设计一个缺陷管理系统,要求有项目、缺陷、评论功能。”
Skill 会自动运行,分析需求,并最终在你的项目根目录下生成 xxx_design.md 文件。
如果你也厌倦了每次建表都要纠结如何设计,或者受够了没有注释的“天书”数据库,欢迎尝试 database-designer-lite!
本人还是一名学生,对于一些技术了解还不是很深,期待大家能够提出建议,希望这个 Skill 能帮到各位 TRAE 友!

