个人级项目数据库设计skill—database-designer-lite 分享

做个人项目或者毕设时,你是不是也遇到过这种情况:

  • 需求只有一句话:“我要做一个自习室预约管理系统”,然后对着空屏幕发呆,不知道该建几张表。

  • 设计随心所欲:表名有时候用单数有时候用复数,主键有时候叫 id 有时候叫 uid

  • 文档永远滞后:代码写完了,数据库设计文档还没写,或者文档跟代码根本对不上。

  • 后期维护火葬场:字段全是 status,但不知道 status=2 到底代表“已完成”还是“已取消”,因为当初建表没写注释。

为了解决这些痛点,我开发了 database-designer-lite 这个 Skill。它不追求企业级的复杂(比如各种复杂的继承表、分库分表),而是专注于个人和中小型项目,快速生成规范、干净、可扩展的数据库设计方案。


Skill 介绍

名称database-designer-lite
适用场景:个人开发、毕业设计、最小可行性产品快速验证。

核心能力:专为个人项目打造的“设计规矩”

  1. 智能实体分析:告别从零开始的迷茫。只需一个项目名,Skill 就能自动分析出核心业务对象,为你搭好骨架。

  2. 设计规范统一:内置一套严格的设计准则,让你的数据库不再“随心所欲”:

    • 拒绝硬编码:采用字典表设计,让角色、类型扩展无需改动表结构。

    • 注释即文档:为字段添加注释,杜绝“天书”代码。

    • 生命周期管理:为业务数据添加逻辑删除字段,安全可靠。

    • 命名与范式:严格遵循 3NF、蛇形命名法、主键外键规范等最佳实践。

  3. 文档代码一体化:不再有滞后的文档。一次生成包含 实体关系、表结构 的 Markdown 文档和 可直接运行 的 SQL 脚本,两者完全同步。

  4. 一键本地保存:设计成果自动保存为本地 .md 文件,方便你随时查阅、归档或分享给他人。


效果展示

让我们来看一个真实的对比。

我用相同的 Prompt 分别测试了 直接生成使用 Skill 生成 的效果。

Prompt

设计一个项目Issue分诊系统数据库表结构,使用mysql数据库,表结构保存为markdown文件。
需求:

  1. 用户可以登录系统

  2. 系统需要同步项目的Issue信息

  3. Issue可以被标记为不同类型

  4. Issue可以添加多个标签

  5. 维护者可以给Issue指派负责人

  6. 系统需要记录Issue的处理状态

  7. 用户可以对Issue添加评论


:cross_mark: 没有使用 Skill 时

生成的表结构很复杂,对于只想做个人项目,过于复杂了。

问题 1:过度设计,表结构复杂
AI 经常会“炫技”,生成了一堆个人项目根本用不上的复杂结构。
例如,还没开始写业务代码,就被迫要先维护10多张技术支撑表。这种“企业级”的复杂度,对于个人项目来说简直是灾难

问题 2:生成的文档混乱,没有统一规范
输出内容往往是散乱的:一会儿是 SQL 代码,一会儿是文字描述,缺乏结构化。

  • 表名风格不统一(有的单数有的复数)。

  • 字段定义随意(有的用 ENUM,有的用 TINYINT)。

  • 缺少核心的实体关系图(ERD)描述,让人摸不着头脑。

问题 3:数据库字段没有统一约束,维护靠猜


:white_check_mark: 使用 database-designer-lite 后

Skill 生成的设计克制且规范,完全遵循个人项目的“够用就好”原则。

1. 表数量合理,聚焦核心

Skill 明白这是“个人项目”,拒绝生成复杂的日志表,只保留核心业务实体:

  • usersprojectsissuescomments 等。
    表数量控制在 15 张以内,既满足了需求,又不会让你在建表时就感到疲惫。

2. 可拓展性强

根据实体之间关系,设计表结构,多对多关系单独设计为表。

3. 遵循数据库设计规范

  • 3NF 范式:拒绝冗余数据。

  • 统一命名:全小写蛇形命名,主键、外键遵循规范。

  • 生命周期管理:自动添加 deleted_at 逻辑删除字段,数据安全有保障。

4. 规范的文档和 SQL 语句

生成的 SQL 脚本自带详细注释

同时生成对应的 Markdown 文档,文档与代码完美同步,直接归档即可。


:light_bulb: Skill 编写思路与技巧

怎么写好这样一个 Skill?我总结了以下几点经验:

1. 结构化思维:6 步设计法

不要让 AI “凭感觉”生成,要在 Prompt 里规定严格的思考步骤(Workflow):

  1. Analyze System Functions:先分析功能(即使输入很短,也要推导功能模块)。

  2. Extract Business Entities:从功能中提取名词(实体)。

  3. Derive Entity Relationships:确定实体间的动词(关系)。

  4. Design Database Tables:映射为表,应用范式。

  5. Generate SQL:写代码。

  6. Generate Document:写文档。

在 Skill 的定义中明确这 6 步,AI 的输出质量会显著提高。

2. 规则

为了防止 AI 放飞自我,必须在 Prompt 里设置“负面约束”和“强制要求”:

  • DO NOT create generic EAV tables (No data1, data2 fields).

  • 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 Write tool 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 友!

3 个赞

感谢分享!收藏了 :star:

1 个赞

感谢喜欢 :smiling_face_with_three_hearts:

1 个赞

内容不错 收藏了

2 个赞

哇,汤圆哥哥 :drooling_face:

1 个赞