Token导航 LogoToken导航TokenDH.com
AI 工具只读github未标认证来源可访问clear审计通过

database-design数据库设计

Agent Skill

用于辅助数据库表结构、查询语句、迁移脚本和数据维护任务。它适合让 Agent 分析 schema、编写 SQL、排查查询问题、整理索引或生成迁移建议。使用时需要明确数据库类型、连接环境和目标表,区分只读分析与写入变更;涉及删除、更新、迁移和批量导入时,应优先 dry-run、备份或事务保护,避免误操作。

总安装

470

周安装

19

GitHub Stars

218

下载量

147
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

3

许可证

MIT

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:database-design(数据库设计)
来源仓库:https://github.com/leavesfly/jimi
仓库路径:skills/database-design
安装命令:
npx skills add https://github.com/leavesfly/jimi --skill database-design
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。不同来源提供的安装方式可能略有差异;本站展示可直接复制的安装命令,安装前请核对来源页面。

skills.shnpx skills
npx skills add https://github.com/leavesfly/jimi --skill database-design

简介

database-design 用于辅助数据库表结构、查询语句、迁移脚本和数据维护任务,适合分析 schema、编写 SQL 或排查查询问题。

  • 它能帮助 Agent 整理索引建议、生成迁移方案,并支持 dry-run 和事务保护以避免误操作。
  • 使用时需明确数据库类型、连接环境和目标表,区分只读分析与写入变更操作。
  • 安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写操作。
  • 适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。

SKILL.md

数据库设计规范技能包

设计高效、可维护的数据库结构。

表设计原则

1. 命名规范

表名

  • 小写字母 + 下划线
  • 使用复数形式
  • 示例:users, order_items, user_profiles

字段名

  • 小写字母 + 下划线
  • 见名知意
  • 示例:created_at, user_id, email_address

索引名

-- 主键:pk_表名
PRIMARY KEY pk_users

-- 唯一索引:uk_表名_字段名
UNIQUE INDEX uk_users_email

-- 普通索引:idx_表名_字段名
INDEX idx_users_created_at

-- 外键:fk_表名_关联表名
FOREIGN KEY fk_orders_users

2. 字段类型选择

数据类型使用场景示例
INT/BIGINTID、数量、年龄user_id BIGINT
VARCHAR变长字符串name VARCHAR(100)
CHAR定长字符串country_code CHAR(2)
TEXT长文本description TEXT
DECIMAL金额、精确数值price DECIMAL(10,2)
DATETIME日期时间created_at DATETIME
ENUM固定选项status ENUM('active','inactive')
BOOLEAN布尔值is_deleted BOOLEAN

注意

  • 避免使用 FLOAT/DOUBLE 存储金额
  • VARCHAR 长度设置合理(避免过大)
  • 时间字段统一使用 DATETIME 或 TIMESTAMP

3. 主键设计

推荐

-- 自增ID(适合单机)
id BIGINT AUTO_INCREMENT PRIMARY KEY

-- 雪花ID(适合分布式)
id BIGINT PRIMARY KEY COMMENT '雪花ID'

-- UUID(分布式场景)
id CHAR(36) PRIMARY KEY COMMENT 'UUID'

避免

  • 业务字段作为主键(如手机号、邮箱)
  • 联合主键(复杂度高)

4. 外键约束

使用外键的优势

  • 数据完整性保证
  • 级联操作

不使用外键的场景

  • 高并发系统(性能考虑)
  • 分库分表场景
  • 微服务架构
-- 外键示例
FOREIGN KEY (user_id)
  REFERENCES users(id)
  ON DELETE CASCADE
  ON UPDATE CASCADE

索引设计

1. 索引类型

主键索引

PRIMARY KEY (id)

唯一索引

UNIQUE INDEX uk_users_email (email)

普通索引

INDEX idx_users_created_at (created_at)

联合索引(遵循最左前缀原则):

INDEX idx_users_name_age (name, age)
-- 可以走索引: WHERE name = 'xxx'
-- 可以走索引: WHERE name = 'xxx' AND age = 25
-- 不走索引: WHERE age = 25

全文索引

FULLTEXT INDEX ft_articles_content (content)

2. 索引优化原则

何时创建索引

  • ✓ WHERE 子句常用字段
  • ✓ ORDER BY 字段
  • ✓ JOIN 关联字段
  • ✓ 查询频率高的字段

何时避免索引

  • ✗ 数据重复度高的字段(如性别)
  • ✗ 频繁更新的字段
  • ✗ 小表(全表扫描更快)

索引失效场景

-- ❌ 在索引列上使用函数
WHERE YEAR(created_at) = 2025

-- ✓ 改为
WHERE created_at >= '2025-01-01' AND created_at < '2026-01-01'

-- ❌ 模糊查询前导模糊
WHERE name LIKE '%张%'

-- ✓ 改为
WHERE name LIKE '张%'

-- ❌ 类型转换
WHERE user_id = '123'  -- user_id 是 INT

-- ✓ 改为
WHERE user_id = 123

SQL 优化

1. 查询优化

避免 SELECT *:

-- ❌ 不推荐
SELECT * FROM users;

-- ✓ 推荐
SELECT id, name, email FROM users;

使用 LIMIT

SELECT id, name FROM users LIMIT 100;

避免 N+1 查询

-- ❌ N+1 问题
SELECT * FROM orders;  -- 查询 N 个订单
-- 然后循环查询每个订单的用户
SELECT * FROM users WHERE id = ?;

-- ✓ 使用 JOIN
SELECT o.*, u.name
FROM orders o
JOIN users u ON o.user_id = u.id;

2. 分页优化

传统分页(大偏移量性能差):

SELECT * FROM users LIMIT 100000, 20;

优化方案(使用 ID 范围)

SELECT * FROM users
WHERE id > 100000
ORDER BY id
LIMIT 20;

使用覆盖索引

SELECT id, name FROM users
WHERE status = 'active'
ORDER BY created_at
LIMIT 20;

3. COUNT 优化

**避免 COUNT(*)**:

-- ❌ 慢
SELECT COUNT(*) FROM users WHERE status = 'active';

-- ✓ 使用近似值(如缓存)
-- 或者定期统计存到另一个表

范式设计

第一范式(1NF)

每个字段都是不可分割的原子值

第二范式(2NF)

消除部分依赖(非主键字段完全依赖主键)

第三范式(3NF)

消除传递依赖(非主键字段不依赖其他非主键字段)

反范式化

为了性能适当冗余数据:

-- 订单表冗余用户名(避免频繁JOIN)
CREATE TABLE orders (
    id BIGINT PRIMARY KEY,
    user_id BIGINT,
    user_name VARCHAR(100),  -- 冗余字段
    total_amount DECIMAL(10,2)
);

常用字段

标准字段

id BIGINT AUTO_INCREMENT PRIMARY KEY,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
is_deleted BOOLEAN DEFAULT FALSE,
created_by BIGINT,
updated_by BIGINT

乐观锁

version INT NOT NULL DEFAULT 0

软删除

deleted_at DATETIME NULL,
is_deleted BOOLEAN DEFAULT FALSE

分库分表

垂直拆分

按业务模块拆分表

水平拆分

-- 按 user_id 取模
user_0, user_1, user_2, ...

-- 按时间分表
order_202501, order_202502, ...

最佳实践

  1. 必须字段:id, created_at, updated_at
  2. 统一字符集:utf8mb4
  3. 统一时区:UTC
  4. 避免 NULL:尽量使用 NOT NULL + DEFAULT
  5. 合理使用注释:COMMENT '字段说明'
  6. 定期备份:自动化备份机制
  7. 监控慢查询:开启 slow_query_log

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

04

需要参考平台分布和安装热度时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Claude Code

31.92%
按下载量换算47

trae

22.6%
按下载量换算33

OpenCode

18.87%
按下载量换算28

Antigravity

12.22%
按下载量换算18

windsurf

8.23%
按下载量换算12

Codex

3.74%
按下载量换算5

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

只读

该 Skill 主要提供规则、说明或参考内容,本身偏只读;真正读写文件、联网或执行命令仍取决于宿主 Agent 的任务。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。

来源信息

继续浏览同类 Skills