8.9 KiB
WDS框架 - 数据库设计师智能体 使用指南
Profile
- author: Wantsong
- version: V1.0
- date: 2025-06-07
1. 智能体概述
数据库设计师与审计师智能体是专为WDS框架打造的AI设计助手。它具备两大核心能力:
- 设计新表:根据您的业务需求,从零开始创建完全符合WDS规范的MySQL建表SQL。
- 审查现有表:审计您提供的SQL脚本,发现与WDS规范不符之处,并提供详细的优化报告。
它的价值在于提升效率、保障规范、统一标准、发现隐患。
2. 准备工作
在使用本智能体前,请确保您已完成以下准备工作。这对于智能体的正确运行至关重要。
-
方式一(推荐,长期使用):知识库模式
- 创建智能体:在支持知识库功能的AI平台中,使用我们提供的CCPE提示词作为智能体的系统指令/角色定义。
- 上传知识:将以下两个规范文档上传并关联到该智能体:
15. 数据库设计规范.md16. 数据库操作设计.md这样,智能体就拥有了WDS框架的“长期记忆”。
-
方式二(临时测试):上下文注入模式 在每次会话的开始,将CCPE提示词和上述两个规范文档的全文一并粘贴到输入框,然后再提出您的具体需求。
3. 如何提出有效需求
本智能体支持两种操作模式,它会根据您的输入自动判断。
3.1 模式A:设计新表
向智能体提出清晰、具体的需求是获得高质量输出的关键。请遵循以下模板和原则。
3.1.1 基本原则
- 明确具体:避免使用模糊的描述。例如,不要只说“需要一个价格字段”,而应说明是“市场价”还是“销售价”,单位是“元”还是“分”。
- 提供上下文:告知智能体这张表属于哪个业务模块,主要用途是什么。
- 描述查询场景:这是设计高效索引的最重要信息。请明确告知哪些字段会经常被用作查询条件(
WHERE)、排序(ORDER BY)或分组(GROUP BY)。
3.1.2 需求模板
建议使用以下结构化模板向智能体提出需求,以确保信息的完整性。
你好,数据库设计师。请为WDS系统设计一张新表。
- **业务模块**: [例如:商品中心、订单管理、会员系统]
- **表名建议**: [例如:商品信息表]
- **表的主要用途**: [例如:用于存储平台销售的商品基本信息]
- **字段列表**:
- **商品名称**: 字符串类型,长度约50,不能为空。
- **商品编码**: 字符串,唯一,不能为空,长度32。
- **商品分类ID**: 关联商品分类表的主键。
- **品牌名称**: 字符串,长度约50。
- **市场价**: 金额,单位为元。
- **库存数量**: 整数。
- **商品主图**: 字符串,存储URL,长度255。
- **商品详情**: 富文本内容,可能很长。
- **上架状态**: 枚举类型,可选值为:1-已上架, 0-未上架。默认未上架。
- **是否推荐**: 布尔类型,表示是否推荐到首页。
- **关键查询场景**:
1. 经常需要根据 **商品编码** 精确查询商品。
2. 经常需要根据 **商品名称**进行模糊搜索。
3. 后台管理列表需要按 **商品分类ID** 筛选,并按 **创建时间** 倒序排序。
4. 经常会查询 **上架状态** 为“已上架”的商品。
3.1.3 优质示例
示例一:简单的业务表
用户输入: “你好,请帮我设计一张‘系统公告表’。属于‘系统管理’模块。主要用于发布系统级通知。需要包含字段:公告标题(字符串,200)、公告类型(枚举:1-通知, 2-公告)、公告内容(富文本)、发布状态(枚举:0-草稿, 1-已发布)、发布人、发布时间。关键查询场景是:前台用户查询‘已发布’的公告,并按发布时间倒序排列。”
示例二:包含关联关系的表
用户输入: “你好,我需要一张‘订单主表’,属于‘订单中心’模块。用于记录用户的订单信息。字段包括:订单号(唯一,字符串32)、用户ID(关联用户表)、订单总金额(单位分)、实际支付金额(单位分)、支付状态(枚举:WAIT_PAY-待支付, PAID-已支付, CANCELLED-已取消)、收货地址ID、订单备注。关键查询场景:1. 根据订单号查询。2. 查询某个用户的所有订单,按创建时间倒序。3. 查询所有‘待支付’的订单。”
3.2 模式B:审查现有SQL脚本
当您已经手写了一份SQL脚本,或需要检查历史代码是否符合最新规范时,请向它提供完整的CREATE TABLE SQL代码。
3.2.1 需求模板
你好,请帮我审查以下SQL脚本是否符合WDS数据库设计规范,并给出优化建议。
[将您的SQL代码粘贴在这里,并用```sql包裹]
3.2.2 示例
“你好,请帮我审查以下SQL脚本是否符合WDS数据库设计规范,并给出优化建议。”
CREATE TABLE `t_product` ( `productId` INT AUTO_INCREMENT PRIMARY KEY, `product_Name` VARCHAR(255) NOT NULL, `Code` VARCHAR(50) UNIQUE, `price` FLOAT, `description` TEXT, `created_at` DATETIME, INDEX (product_Name) ) ENGINE=MyISAM CHARSET=utf8;
4. 理解智能体的输出
4.1 设计模式的输出内容
您将从智能体那里得到一份格式化好的CREATE TABLE SQL脚本。
- SQL脚本:一份可以直接在MySQL 8.0中执行的建表语句。
- 设计说明 (可选):在某些复杂情况下,智能体可能会在SQL代码前后附上简短的说明,解释其设计决策(例如,为什么创建了一个复合索引)。
4.2 审查模式的输出
您将得到一份结构化的审计报告,通常包含以下部分:
- 总体评价:对脚本质量的简要总结。
- [严重违规]:必须修复的问题,通常违反了WDS的核心规范(如主键、审计字段等)。
- [优化建议]:强烈建议修改的问题,有助于提升性能和可维护性。
- [代码风格]:关于注释、命名等可读性方面的建议。
每个问题点都会清晰地指出问题所在、违反的规范、以及如何修复。
示例审查报告片段:
总体评价: 该脚本存在多处严重违反WDS规范的问题,不建议直接使用。
[严重违规]
- 主键类型错误: 字段
productId使用INT AUTO_INCREMENT作为主键。
- 违反规范:
15.3.2要求业务表主键必须为id VARCHAR(32)。- 修复建议: 修改主键为
idVARCHAR(32) NOT NULL。- 审计字段缺失: 脚本缺少
create_by,update_by,update_time等标准审计字段。
- 违反规范:
15.6业务表标准结构。- 修复建议: 在表中添加所有标准审计字段。 ...
5. 常见问题与最佳实践
-
问:如果智能体的输出不完全符合我的想法怎么办? 答:这通常意味着您的初始需求不够具体。请根据输出结果,优化并细化您的需求描述,然后再次提交。例如,明确指出“市场价请使用
DECIMAL(10,2)类型”或“请为‘用户ID’和‘支付状态’创建一个复合索引”。 -
问:智能体提示我的需求与规范冲突,怎么办? 答:这是智能体的核心价值所在。它在为您避免潜在的设计问题。请首先复查WDS设计规范。如果确实需要特例处理,请在需求中明确说明“我知道这不符合常规规范,但业务要求必须如此,请按我的要求生成”。
-
问:如何设计多个关联的表(如订单和订单项)? 答:建议一次只设计一张表。先完成主表(如
t_order_main)的设计,然后在设计从表(如t_order_item)时,在需求中明确指出其外键关联,例如:“需要一个order_id字段,用于关联订单主表”。 -
问:审查报告太长,能直接给我最终的正确脚本吗? 答:可以。在智能体给出审查报告后,您可以继续追问:“请根据你的审查报告,直接提供一份完全修正后的SQL脚本。”
-
问:我只是想快速检查一个字段的命名是否合规,可以吗? 答:可以,但提供完整的
CREATE TABLE上下文效果最好。因为规范是整体性的(例如,索引命名依赖于表名和字段名)。建议总是提供完整脚本进行审查。 -
最佳实践:
- 新人培训: 让新团队成员使用审查模式来学习WDS的数据库规范。
- 代码审查 (CR): 在代码合并前,将新加的DDL脚本交由智能体进行第一轮自动化审查。
- 设计与审查结合: 先用设计模式生成初版,然后根据业务微调,最后再用审查模式确认无误。