Agent Skills
返回列表
💻

数据库设计

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/database-design-zh。

技能介绍

要解决什么问题

很多团队在「先上 PostgreSQL + Prisma」的惯性里做数据库设计:小工具也用重型栈、缺索引、生产里 SELECT *、该规范化却塞 JSON、ORM 懒加载拖出 N+1。结果不是「能跑就行」,而是迁移难、查询慢、改表风险高。本技能面向在动手写 DDL 之前需要选型、建模和性能预案的场景,强调按上下文决策,而不是套一套通用模板。

技能如何组织内容

技能采用内容地图 + 按需阅读:只在请求相关时打开对应文档,避免把整本手册塞进上下文。

  • 选型:database-selection.md(PostgreSQL / Neon / Turso / SQLite 等)、orm-selection.md(Drizzle / Prisma / Kysely)
  • 建模:schema-design.md(规范化、主键、关系类型)
  • 性能:indexing.md(索引与复合索引)、optimization.md(N+1、EXPLAIN ANALYZE)
  • 变更:migrations.md(安全迁移、无服务器数据库下的模式变更)

执行前有一份决策检查清单:是否问过用户数据库偏好、是否匹配部署环境、是否规划索引与关系。核心原则写得很直白:偏好不明确就询问;不要默认所有场景都用 PostgreSQL(例如简单应用 SQLite 可能足够)。

适用边界与注意点

这是设计方法论与检查清单,不是替你生成完整业务 schema 的代码生成器。它明确列了反模式(跳过索引、滥用 JSON、忽略 N+1 等),适合与具体 ORM/云数据库文档配合使用。若你的需求只是「给我一张用户表的 SQL」,应直接说明栈与约束;若需求是选型 + 建模 + 可维护的演进,按地图分步阅读更合适。

使用场景

  • 新项目要定持久化方案,需在 SQLite、PostgreSQL 或 Neon/Turso 之间按部署与规模做选型
  • 已有 Drizzle/Prisma 代码出现 N+1 或慢查询,要用索引策略与 EXPLAIN ANALYZE 排查
  • 上线前规划表结构:规范化程度、主键与一对多/多对多关系尚未定稿
  • 无服务器或边缘部署环境下,要设计可回滚的数据库迁移与模式变更流程

适合人员

  • 负责新服务技术选型的后端,需要在问清偏好后避免一律默认 PostgreSQL
  • 全栈开发者维护 Prisma/Drizzle 项目,改表前想对照清单检查索引与关系设计
  • 从单机 SQLite 原型准备迁到托管 Postgres,要评估迁移路径与 ORM 是否匹配
  • 性能问题集中在 ORM 懒加载的团队,希望按文档分步处理 N+1 与查询反模式