209 lines
4.4 KiB
Markdown
209 lines
4.4 KiB
Markdown
|
|
# SQL 文档模板
|
|||
|
|
|
|||
|
|
## 元数据
|
|||
|
|
- 需求编号:
|
|||
|
|
- 创建时间:YYYY-MM-DD
|
|||
|
|
- 创建人:
|
|||
|
|
- 版本:1.0.0
|
|||
|
|
- 文档类型:数据库设计文档/SQL查询文档/存储过程文档/数据流程文档
|
|||
|
|
|
|||
|
|
## 数据库基本信息
|
|||
|
|
- **数据库系统**:MySQL/PostgreSQL/Oracle/其他
|
|||
|
|
- **数据库名称**:
|
|||
|
|
- **版本**:
|
|||
|
|
- **环境**:开发/测试/生产
|
|||
|
|
|
|||
|
|
## 文档概述
|
|||
|
|
- **文档目标**:
|
|||
|
|
- **适用范围**:
|
|||
|
|
- **使用对象**:
|
|||
|
|
|
|||
|
|
## 数据库结构
|
|||
|
|
|
|||
|
|
### 数据库关系图
|
|||
|
|
```
|
|||
|
|
[数据库表关系的可视化表示]
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 表结构
|
|||
|
|
|
|||
|
|
#### 表 1:[表名]
|
|||
|
|
- **描述**:
|
|||
|
|
- **表结构**:
|
|||
|
|
| 字段名 | 数据类型 | 约束 | 默认值 | 描述 |
|
|||
|
|
| ------ | ------ | ---- | ------ | ---- |
|
|||
|
|
| id | BIGINT | PRIMARY KEY, AUTO_INCREMENT | - | 主键 |
|
|||
|
|
| name | VARCHAR(50) | NOT NULL | - | 名称 |
|
|||
|
|
| create_time | DATETIME | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
|
|||
|
|
| update_time | DATETIME | NOT NULL | CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP | 更新时间 |
|
|||
|
|
- **索引**:
|
|||
|
|
| 索引名 | 类型 | 字段 | 描述 |
|
|||
|
|
| ------ | ---- | ---- | ---- |
|
|||
|
|
| idx_name | INDEX | name | 名称索引 |
|
|||
|
|
- **备注**:
|
|||
|
|
|
|||
|
|
#### 表 2:[表名]
|
|||
|
|
- **描述**:
|
|||
|
|
- **表结构**:
|
|||
|
|
| 字段名 | 数据类型 | 约束 | 默认值 | 描述 |
|
|||
|
|
| ------ | ------ | ---- | ------ | ---- |
|
|||
|
|
| id | BIGINT | PRIMARY KEY, AUTO_INCREMENT | - | 主键 |
|
|||
|
|
| foreign_id | BIGINT | NOT NULL, FOREIGN KEY REFERENCES table1(id) | - | 外键 |
|
|||
|
|
| value | VARCHAR(100) | NOT NULL | - | 值 |
|
|||
|
|
- **索引**:
|
|||
|
|
| 索引名 | 类型 | 字段 | 描述 |
|
|||
|
|
| ------ | ---- | ---- | ---- |
|
|||
|
|
| idx_foreign_id | INDEX | foreign_id | 外键索引 |
|
|||
|
|
- **备注**:
|
|||
|
|
|
|||
|
|
## SQL 代码
|
|||
|
|
|
|||
|
|
### 查询语句
|
|||
|
|
|
|||
|
|
#### 查询 1:[查询名称]
|
|||
|
|
- **功能描述**:
|
|||
|
|
- **SQL 语句**:
|
|||
|
|
```sql
|
|||
|
|
-- 查询1描述
|
|||
|
|
SELECT t1.id, t1.name, t2.value
|
|||
|
|
FROM table1 t1
|
|||
|
|
JOIN table2 t2 ON t1.id = t2.foreign_id
|
|||
|
|
WHERE t1.name LIKE '%%' AND t2.value IS NOT NULL
|
|||
|
|
ORDER BY t1.create_time DESC;
|
|||
|
|
```
|
|||
|
|
- **使用场景**:
|
|||
|
|
- **性能优化**:
|
|||
|
|
|
|||
|
|
#### 查询 2:[查询名称]
|
|||
|
|
- **功能描述**:
|
|||
|
|
- **SQL 语句**:
|
|||
|
|
```sql
|
|||
|
|
-- 查询2描述
|
|||
|
|
```
|
|||
|
|
- **使用场景**:
|
|||
|
|
- **性能优化**:
|
|||
|
|
|
|||
|
|
### 存储过程
|
|||
|
|
|
|||
|
|
#### 存储过程 1:[存储过程名称]
|
|||
|
|
- **功能描述**:
|
|||
|
|
- **SQL 代码**:
|
|||
|
|
```sql
|
|||
|
|
-- 存储过程1描述
|
|||
|
|
DELIMITER //
|
|||
|
|
CREATE PROCEDURE procedure_name(IN param1 INT, OUT result INT)
|
|||
|
|
BEGIN
|
|||
|
|
-- 存储过程逻辑
|
|||
|
|
SELECT COUNT(*) INTO result FROM table1 WHERE id > param1;
|
|||
|
|
END //
|
|||
|
|
DELIMITER ;
|
|||
|
|
```
|
|||
|
|
- **参数说明**:
|
|||
|
|
| 参数名 | 类型 | 方向 | 描述 |
|
|||
|
|
| ------ | ---- | ---- | ---- |
|
|||
|
|
| param1 | INT | IN | 输入参数 |
|
|||
|
|
| result | INT | OUT | 输出参数 |
|
|||
|
|
- **调用示例**:
|
|||
|
|
```sql
|
|||
|
|
CALL procedure_name(100, @result);
|
|||
|
|
SELECT @result;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 触发器
|
|||
|
|
|
|||
|
|
#### 触发器 1:[触发器名称]
|
|||
|
|
- **功能描述**:
|
|||
|
|
- **SQL 代码**:
|
|||
|
|
```sql
|
|||
|
|
-- 触发器1描述
|
|||
|
|
DELIMITER //
|
|||
|
|
CREATE TRIGGER trigger_name
|
|||
|
|
AFTER INSERT ON table1
|
|||
|
|
FOR EACH ROW
|
|||
|
|
BEGIN
|
|||
|
|
-- 触发器逻辑
|
|||
|
|
INSERT INTO table2(foreign_id, value) VALUES(NEW.id, 'default_value');
|
|||
|
|
END //
|
|||
|
|
DELIMITER ;
|
|||
|
|
```
|
|||
|
|
- **触发条件**:
|
|||
|
|
- **执行逻辑**:
|
|||
|
|
|
|||
|
|
### 视图
|
|||
|
|
|
|||
|
|
#### 视图 1:[视图名称]
|
|||
|
|
- **功能描述**:
|
|||
|
|
- **SQL 代码**:
|
|||
|
|
```sql
|
|||
|
|
-- 视图1描述
|
|||
|
|
CREATE VIEW view_name AS
|
|||
|
|
SELECT t1.id, t1.name, t2.value
|
|||
|
|
FROM table1 t1
|
|||
|
|
JOIN table2 t2 ON t1.id = t2.foreign_id;
|
|||
|
|
```
|
|||
|
|
- **使用场景**:
|
|||
|
|
|
|||
|
|
## 使用示例
|
|||
|
|
|
|||
|
|
### 基本查询示例
|
|||
|
|
```sql
|
|||
|
|
-- 基本查询示例
|
|||
|
|
SELECT * FROM table1 WHERE name = 'example';
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 复杂查询示例
|
|||
|
|
```sql
|
|||
|
|
-- 复杂查询示例
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 存储过程调用示例
|
|||
|
|
```sql
|
|||
|
|
-- 存储过程调用示例
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 优化建议
|
|||
|
|
|
|||
|
|
### 索引优化
|
|||
|
|
- 建议1:
|
|||
|
|
- 建议2:
|
|||
|
|
|
|||
|
|
### 查询优化
|
|||
|
|
- 建议1:
|
|||
|
|
- 建议2:
|
|||
|
|
|
|||
|
|
### 性能监控
|
|||
|
|
- 监控指标:
|
|||
|
|
- 监控工具:
|
|||
|
|
|
|||
|
|
## 维护指南
|
|||
|
|
|
|||
|
|
### 备份策略
|
|||
|
|
- 备份频率:
|
|||
|
|
- 备份方式:
|
|||
|
|
- 备份存储位置:
|
|||
|
|
|
|||
|
|
### 恢复流程
|
|||
|
|
- 恢复步骤:
|
|||
|
|
- 验证方法:
|
|||
|
|
|
|||
|
|
### 更新流程
|
|||
|
|
- 更新步骤:
|
|||
|
|
- 测试方法:
|
|||
|
|
- 回滚方案:
|
|||
|
|
|
|||
|
|
### 常见问题
|
|||
|
|
| 问题 | 解决方案 |
|
|||
|
|
| ---- | ------ |
|
|||
|
|
| 问题1 | 解决方案1 |
|
|||
|
|
| 问题2 | 解决方案2 |
|
|||
|
|
|
|||
|
|
## 变更历史
|
|||
|
|
|
|||
|
|
| 版本 | 日期 | 变更内容 | 变更人 |
|
|||
|
|
| ---- | ---- | ------ | ------ |
|
|||
|
|
| 1.0.0 | YYYY-MM-DD | 初始版本 | |
|
|||
|
|
| 1.1.0 | YYYY-MM-DD | 添加新表 | |
|
|||
|
|
|
|||
|
|
## 相关文档
|
|||
|
|
- [需求文档](../requirements/YYYY-MM-DD-00X-需求名.md)
|
|||
|
|
- [设计文档](../design/YYYY-MM-DD-00X-设计名.md)
|