mcpField
D
database-design

database-design

github.com/sickn33数据与数据库48.7k2.2k 次安装今天更新
代码仓库

关于 database-design

用于选择数据库与 ORM、审查架构和索引,并考虑查询性能与迁移的数据库设计技能。它强调根据具体情境决策,并附带只读的启发式架构盘点工具。

主要功能

  1. 01数据库与 ORM 选择指导
  2. 02架构和关系设计
  3. 03索引与查询优化主题
  4. 04迁移规划指导
  5. 05只读启发式架构盘点

适用场景

  1. 01为应用选择数据库
  2. 02审查架构关系和索引
  3. 03评估查询性能或迁移方案

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/sickn33/agentic-awesome-skills --skill database-design

安装后在 Claude Code 中输入/database-design确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

database-selection.md
indexing.md
migrations.md
optimization.md
orm-selection.md
schema-design.md
scripts/
schema_validator.py

详细介绍

数据库设计

学会思考,而不是照搬 SQL 模式。

🎯 选择性阅读规则

只阅读与请求相关的文件! 查看内容映射,找到所需内容。

文件说明何时阅读
database-selection.mdPostgreSQL、Neon、Turso 与 SQLite 的对比选择数据库时
orm-selection.mdDrizzle、Prisma 与 Kysely 的对比选择 ORM 时
schema-design.md规范化、主键、关系设计架构时
indexing.md索引类型、复合索引调优性能时
optimization.mdN+1、EXPLAIN ANALYZE优化查询时
migrations.md安全迁移、无服务器数据库修改架构时

⚠️ 核心原则

  • 不明确时,询问用户对数据库的偏好
  • 根据上下文选择数据库和 ORM
  • 不要默认所有情况都使用 PostgreSQL

决策检查清单

设计架构前:

  • 是否询问了用户对数据库的偏好?
  • 是否针对当前上下文选择了数据库?
  • 是否考虑了部署环境?
  • 是否规划了索引策略?
  • 是否定义了关系类型?

反模式

❌ 简单应用也默认使用 PostgreSQL(SQLite 可能就够用) ❌ 跳过索引 ❌ 在生产环境中使用 SELECT * ❌ 结构化数据更合适时仍存储 JSON ❌ 忽略 N+1 查询

适用场景

在选择数据库模型、审查架构关系和索引,或使用随附的建议工具评估拟议架构时使用。

架构辅助工具

scripts/schema_validator.py 是只读的启发式清单工具,并非 Prisma 或 Drizzle 解析器。缺少架构、不支持的格式以及仅基于启发式的结果都会返回非零状态,并设置 passed: false 和 analysis_complete: false。请使用项目本地的 ORM 验证器进行语法和类型检查;迁移和约束语义需另行审查。

限制

  • 仅当任务明确符合上述范围时才使用此技能。
  • 不要将输出视为环境专属验证、测试或专家审查的替代品。
  • 如果缺少必要的输入、权限、安全边界或成功标准,请暂停并请求澄清。

评论

支持 Markdown