SuperAPI AI 工具集

database-schema-designer

编程与开发

查看项目

更新于 10-15 16:27

技能介绍

概述

Database Schema Designer 是一个面向关系型数据库设计的人工智能技能,所属 Tier 为 POWERFUL,分类为 Engineering,领域为 Data Architecture / Backend。它根据需求设计数据库模式,并生成迁移脚本、TypeScript/Python 类型、种子数据、RLS 策略和索引。该技能能够处理多租户、软删除、审计追踪、版本控制和多态关联等架构关注点。

主要能力

  • 模式设计:将需求规范化为表、关系和约束
  • 迁移生成:支持 Drizzle、Prisma、TypeORM、Alembic
  • 类型生成:TypeScript 接口、Python dataclasses/Pydantic 模型
  • RLS 策略:为多租户应用提供行级安全策略
  • 索引策略:组合索引、部分索引、覆盖索引
  • 种子数据:生成真实的测试数据
  • ERD 生成:从模式生成 Mermaid 图表

适用场景

  • 设计需要数据库表的新功能
  • 审查模式的性能或规范化问题
  • 为现有模式添加多租户支持
  • 从 Prisma 模式生成 TypeScript 类型
  • 规划破坏性变更的模式迁移

模式设计流程

第一步:需求 → 实体

给定需求,例如:“用户可创建项目。每个项目有任务。任务可以有标签。任务可以分配给用户。我们需要完整的审计追踪。”提取实体:User、Project、Task、Label、TaskLabel(联结表)、TaskAssignment、AuditLog。

第二步:识别关系

User 1──* Project(所有者)、Project 1──* Task、Task ── Label(通过 TaskLabel)、Task ── User(通过 TaskAssignment)、User 1──* AuditLog。

第三步:添加跨领域关注点

  • 多租户:在所有租户范围的表中添加 organization_id
  • 软删除:添加 deleted_at TIMESTAMPTZ 代替硬删除
  • 审计追踪:添加 created_by、updated_by、created_at、updated_at
  • 版本控制:添加 version INTEGER 用于乐观锁

完整模式示例(任务管理 SaaS)可参考 references/full-schema-examples.md。

行级安全(RLS)策略

提供启用 RLS、创建应用角色、组织隔离策略、软删除策略、删除权限策略的 SQL 示例,并演示通过 set_config 设置用户上下文。

种子数据生成

提供基于 @faker-js/faker 的种子脚本示例,创建组织、用户、项目、任务等数据。

ERD 生成(Mermaid)

提供 Mermaid erDiagram 示例,展示 Organization、User、Project、Task、Label、TaskAssignment、Comment、Attachment 等实体关系,并给出从 Prisma 生成的命令。

常见陷阱

  • 软删除无索引
  • 缺少组合索引
  • 使用可变代理键
  • 新增非空列无默认值
  • 无乐观锁
  • RLS 未测试

最佳实践

  • 所有表添加时间戳
  • 可审计数据使用软删除
  • 合规场景使用审计日志
  • 使用 UUID 或 CUID 作为主键
  • 为外键建立索引
  • 使用部分索引
  • 优先使用数据库级 RLS 而非应用层过滤