关于 database-design
database-design 为设计 SQL 与 NoSQL 数据库的 schema 提供从需求分析到实施验证的指导,适合数据库设计者和开发者。内容涵盖建模、性能、迁移及常见反模式。
主要功能
- 01需求分析与使用模式梳理
- 02概念、逻辑和物理建模
- 03关系与高级设计模式
- 04NoSQL 数据结构设计
- 05性能优化与迁移指导
- 06设计检查清单
适用场景
- 01从需求创建数据库 schema
- 02规划 MongoDB、Cassandra 或 Redis 数据结构
- 03检查设计中的常见反模式
- 04准备 schema 迁移与验证
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ dauquangthanh/ hanoi-rainbow --skill database-design安装后在 Claude Code 中输入/database-design确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/advanced-design-patterns.mdcommon-anti-patterns-to-avoid.mddatabase-design-checklist.mddatabase-design-workflow.mdnosql-database-design.mdperformance-optimization.mdschema-migration-best-practices.md详细介绍
数据库设计
概述
提供全面的指导,帮助为关系型(SQL)和 NoSQL 数据库设计健壮、可扩展且易于维护的数据库架构,涵盖从概念建模到物理实现的全过程。
设计工作流
- 需求分析 - 收集数据需求和使用模式
- 概念建模 - 创建实体关系图(ERD)
- 逻辑建模 - 定义具有关系的规范化架构
- 物理建模 - 选择数据类型、索引和约束
- 验证 - 根据需求和最佳实践审查设计
快速入门
基础电商架构:
-- Users table
CREATE TABLE users (
id SERIAL PRIMARY KEY,
email VARCHAR(255) UNIQUE NOT NULL,
password_hash VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- Products table
CREATE TABLE products (
id SERIAL PRIMARY KEY,
name VARCHAR(255) NOT NULL,
description TEXT,
price DECIMAL(10,2) NOT NULL,
stock_quantity INTEGER DEFAULT 0,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
INDEX idx_name (name)
);
-- Orders table
CREATE TABLE orders (
id SERIAL PRIMARY KEY,
user_id INTEGER REFERENCES users(id),
total_amount DECIMAL(10,2) NOT NULL,
status VARCHAR(50) DEFAULT 'pending',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
INDEX idx_user_created (user_id, created_at)
);
核心原则
- 从规范化开始,仅在确有必要时才进行反规范化
- 根据实际查询模式有策略地创建索引
- 使用约束在数据库层面保证数据完整性
- 选择适当的数据类型,以优化存储和性能
- 通过分区和分片策略为增长做好规划
- 记录设计决策及其理由
- 使用符合实际情况的数据量进行测试
何时加载参考资料
-
设计工作流:查看 database-design-workflow.md,了解循序渐进的设计流程,包括需求分析、概念/逻辑/物理建模、规范化步骤和关系模式
-
高级模式:查看 advanced-design-patterns.md,了解多对多关系、继承/多态、时态数据、软删除、审计跟踪和层级数据
-
NoSQL 设计:在设计 MongoDB 文档、Cassandra 列族或 Redis 数据结构时,查看 nosql-database-design.md
-
反模式:查看 common-anti-patterns-to-avoid.md,识别 EAV 模式问题、通用表、冗余数据、多值列和其他有问题的设计
-
性能:查看 performance-optimization.md,了解查询优化、分区策略、缓存模式和索引调优
-
迁移:查看 schema-migration-best-practices.md,了解零停机迁移、向后兼容和回滚策略
-
检查清单:查看 database-design-checklist.md,在实施前进行全面验证
评论
支持 Markdown