SuperAPI AI 工具集

specsfy-specialist-data-modeling

数据与分析

查看项目

更新于 10-15 09:27

技能介绍

用途

本技能用于在实施变更之前,对产品的持久化数据进行建模。它帮助理解并演进持久化数据,避免在没有依据的情况下选择数据库或库。使用时应先阅读技术栈、当前系统、迁移、schema、模型、契约和测试,再提出变更建议。

主要能力

  • 识别代码中观察到的实体、其角色以及关系。
  • 记录字段、类型、必填性、来源、生命周期,以及谁可以查询或修改每项信息。
  • 在相关时描述唯一性、一致性、保留、删除、历史与迁移。
  • 更新 spec 的数据部分,并将已确认的回答转交至 $specsfy-aux-database 和 .specsfy/DATABASE.md。
  • 为创建、读取、更新、删除、授权和无效数据推导场景。实现时使用检测到的数据库专家。
  • 不虚构字段、关系或技术。当当前系统无法回答时,由人员确认产品需要保存什么。

使用方式

何时使用

  • 在修改表、schema、模型、迁移或持久化契约时使用。
  • 在创建 spec 之前梳理关系与生命周期时也可使用。
  • 不要在没有项目数据的情况下用于选择数据库库。

流程

  1. 阅读技术栈、迁移、schema、模型和现有测试。
  2. 分离观察到的实体、关系、字段和状态。
  3. 记录唯一性、保留、删除和历史规则。
  4. 将提案与当前契约和查询进行比较。
  5. 将确认结果转交至项目的数据库技能。
  6. 对任何与数据库相关的变更,要求一个带版本化文件的 [MIGRATION] 任务,并在测试库中检查其应用。

标准

  • 每个字段记录类型、来源、存在性和生命周期。
  • 每个关系说明基数和加载方式。
  • 每个迁移保留现有数据,或描述所需的转换。

反模式

  • 创建在产品中没有观察到用途的字段。
  • 在未检查查询、工厂和测试的情况下修改关系。
  • 在阅读现有技术栈之前选择技术。

验证

  • 运行与持久化模型相关的测试和验证器。
  • 在数据库副本中检查迁移,并比较生成的 schema。
  • 在结束任务前,确认文件、应用命令和迁移状态查询。
  • 没有项目可验证的输出,不要声明模型已就绪。

适用场景

适用于需要修改表、schema、模型、迁移或持久化契约的开发工作,也适用于在创建 spec 前梳理实体关系与数据生命周期。

限制

  • 不适用于在没有项目数据的情况下选择数据库库。
  • 不虚构字段、关系或技术;当前系统无法回答时需由人员确认。
  • 没有项目可验证的输出,不得声明模型已就绪。

相关技能

  • $specsfy-aux-database:维护项目的持久化地图。
  • $specsfy-specialist-postgres:Postgres 专有细节。
  • $specsfy-specialist-laravel:Laravel 迁移与模型。

阅读 references/standards.md 以获取建模、迁移和持久化契约的来源。