AgentSkillsCN

database-design-template

提供数据库设计模板与文档结构。当您需要设计数据库表结构、创建数据库设计文档,或生成 SQL 脚本时,此技能将助您事半功倍。

SKILL.md
--- frontmatter
name: "database-design-template"
description: "Provides database design templates and documentation structure. Invoke when designing database schemas, creating database design documents, or generating SQL scripts."

数据库设计模版

本技能提供标准化的数据库设计文档和SQL脚本模版,确保数据库设计项目的一致性。

数据库设计文档模版

1. 表设计模版

markdown
## 表设计

### [中文表名称(英文表名称)]

#### 表说明
[表的业务说明和用途]

#### 表结构

| 字段名 | 类型 | 长度 | 允许空 | 默认值 | 说明 |
|--------|------|------|--------|--------|------|
| id | bigint | 20 | 否 | - | 主键ID,自增 |
| [英文表名称]_business_id | varchar | 32 | 否 | - | 业务ID,唯一索引 |
| [英文表名称]_[字段名] | [类型] | [长度] | 是 | [默认值] | [字段说明] |
| delete_state | tinyint | 1 | 否 | 0 | 删除标记:0-正常,1-已删除 |
| create_time | datetime | - | 否 | NULL | 创建时间 |
| update_time | datetime | - | 否 | NULL | 更新时间 |
| delete_time | datetime | - | 是 | NULL | 删除时间 |

#### 索引设计

| 索引名 | 索引类型 | 索引字段 | 说明 |
|--------|----------|----------|------|
| pk_id | PRIMARY | id | 主键索引 |
| uk_[英文表名称]_business_id | UNIQUE | [英文表名称]_business_id | 业务ID唯一索引 |
| idx_[字段名] | INDEX | [字段名] | [索引说明] |

#### 表关系
- 与[其他中文表名称(英文表名称)]的关系:[关系类型,如:一对多]
- 关联字段:[关联字段名]

2. 表关系模版

markdown
## 表关系设计

### ER图说明
[描述表之间的关系]

### 表关系列表

| 表A | 关系类型 | 表B | 关联字段 | 说明 |
|-----|----------|-----|----------|------|
| [中文表名称A(英文表名称A)] | 一对多 | [中文表名称B(英文表名称B)] | [英文表名称A].id -> [英文表名称B].[英文表名称A]_id | [关系说明] |
| [中文表名称A(英文表名称A)] | 多对多 | [中文表名称B(英文表名称B)] | 通过[中间表英文名称]关联 | [关系说明] |

3. SQL脚本模版

sql
-- =============================================
-- 数据库表创建脚本
-- 项目: [项目名称]
-- 模块: [模块名称]
-- 版本: v1.0
-- 日期: [YYYY-MM-DD]
-- =============================================

-- =============================================
-- 表: [中文表名称(英文表名称)]
-- 说明: [表的业务说明]
-- =============================================
CREATE TABLE `[英文表名称]` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `[英文表名称]_business_id` varchar(32) NOT NULL COMMENT '业务ID',
  `[英文表名称]_[字段名]` [类型]([长度]) COMMENT '[字段说明]',
  `delete_state` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '删除标记:0-正常,1-已删除',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `delete_time` datetime DEFAULT NULL COMMENT '删除时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_[英文表名称]_business_id` (`[英文表名称]_business_id`),
  KEY `idx_[字段名]` (`[字段名]`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='[表说明]';

4. 完整数据库设计文档模版

markdown
# [业务名称]数据库设计文档

## 1. 文档概述

### 1.1 文档信息
- **文档名称**: [业务名称]数据库设计文档
- **文档版本**: v1.0
- **创建日期**: [YYYY-MM-DD]
- **最后更新**: [YYYY-MM-DD]
- **设计人员**: [设计人员]

### 1.2 设计范围
本文档描述[业务名称]模块的数据库设计,包括表结构、字段定义、索引设计和表关系。

### 1.3 设计原则
- 遵循阿里巴巴Java开发手册MySQL数据库规范
- 表结构设计规范化,减少数据冗余
- 合理使用索引,提升查询性能
- 支持业务扩展和性能优化

## 2. 数据库表设计

[在此处使用"表设计模版"为每个表创建章节]

## 3. 表关系设计

[在此处使用"表关系模版"描述表之间的关系]

使用指南

何时使用本技能

  1. 设计新的数据库架构 - 使用模版创建一致的表结构
  2. 创建数据库文档 - 使用文档模版生成完整的设计文档
  3. 生成SQL脚本 - 使用SQL脚本模版创建表
  4. 文档化表关系 - 使用关系模版展示ER图

模版选择

  • 使用表设计模版进行单个表的文档化
  • 使用表关系模版进行表关系的文档化
  • 使用SQL脚本模版生成CREATE TABLE语句
  • 使用完整数据库设计文档模版进行完整的设计文档化

最佳实践

  1. 始终用实际的设计信息填充所有模版占位符
  2. 在所有表中保持命名约定的一致性
  3. 为所有字段包含详细注释,解释业务含义
  4. 记录所有索引及其用途和使用场景
  5. 保持表关系清晰且有良好文档
  6. 当架构变更时更新文档

与p3c-mysql-database的集成

本模版技能与p3c-mysql-database技能配合使用:

  • 使用p3c-mysql-database获取技术规范和编码标准
  • 使用本模版技能进行文档结构和格式化
  • 确保所有设计符合p3c-mysql-database规范

文件结构

使用本技能时,按以下结构组织输出文件:

code
doc/
└── [业务名称]/
    ├── 数据库设计/
    │   ├── [业务名称]数据库设计文档.md
    │   ├── [业务名称]表关系文档.md
    │   └── [业务名称]数据库脚本.sql

示例输出

参考上述模版查看完整示例:

  • 单个表设计文档
  • 表关系文档
  • 表创建的SQL脚本
  • 完整的数据库设计文档