关于 data-management
面向开发者的数据管理技能,涵盖关系型数据库的结构设计、迁移、索引、备份和连接管理,并提供数据完整性与安全变更建议。
主要功能
- 01规范化与反规范化指导
- 02仅向前的迁移实践
- 03索引选择策略
- 04备份与恢复规划
- 05连接池与完整性约束
适用场景
- 01设计表、关系和约束
- 02规划有版本控制的结构变更
- 03通过索引提升查询性能
- 04规划数据库恢复与连接管理
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ dralgorhythm/ claude-agentic-framework --skill data-management安装后在 Claude Code 中输入/data-management确认已加载。
详细介绍
数据管理
工作流
- 架构设计:定义表、关系和约束
- 迁移:对架构变更进行版本控制
- 索引:添加索引以提升查询性能
- 备份:确保具备数据恢复能力
架构设计原则
规范化
- 1NF:值不可再分,不存在重复组
- 2NF:不存在部分依赖
- 3NF:不存在传递依赖
适合反规范化的场景
- 读取密集型工作负载
- 报表/分析
- 缓存层
迁移最佳实践
仅向前迁移
每次迁移都应是单个向前步骤。
-- migrations/001_create_users.sql
CREATE TABLE users (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
email VARCHAR(255) NOT NULL UNIQUE,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
CREATE INDEX idx_users_email ON users(email);
安全迁移
- 首先将新增列设为可空
- 并发创建索引
- 切勿在同一次部署中删除列
索引策略
-- B-tree (default): Equality and range queries
CREATE INDEX idx_users_email ON users(email);
-- Partial index: When you query a subset
CREATE INDEX idx_active_users ON users(id) WHERE active = true;
-- Composite index: Multiple columns
CREATE INDEX idx_orders_user_date ON orders(user_id, created_at DESC);
连接管理
// Use connection pooling
const pool = new Pool({
max: 20, // Max connections
idleTimeoutMillis: 30000, // Close idle connections
connectionTimeoutMillis: 2000
});
数据完整性
- 使用外键约束
- 在适当情况下添加 NOT NULL
- 使用 CHECK 约束进行验证
- 考虑对固定值使用 ENUM 类型
评论
支持 Markdown