Commit c6607d04 by yanrui

Cursor规则使用技巧-数据库脚本生成

parent f39c6de8
# Cursor关于rules的使用技巧-数据库(结合实际案例)
---
> **场景**: 使用Cursor生成库表初始化脚本时,可根据自定义规则生成相应的脚本文件,避免后续的重复修改。
>
> **作者**: yanrui
> **日期**: 2025-06-30
---
## Cursor规则描述
- 在 Cursor 当中,支持两种级别的规则:
- **全局规则(User Rules)**:针对所有项目通用的规则
- **项目规则(Project Rules)**:存放于项目目录下的 `.cursor/rules` 中,只用于约束当前项目。
目前使用的是**项目规则(Project Rules)**,可以针对不同项目,更加灵活的添加规则约束。
## 项目规则(Project Rules)添加步骤
### 1. 新增Cursor Rules
首先打开Cursor,点击【设置齿轮】,进入Cursor Setting 设置页面,然后点击【 Rules】进入【Add new rule】界面
![img](https://i-blog.csdnimg.cn/direct/07e844c023864afe856873097a68739d.png)
当我们点击 【Add New Rule】后,先输入规则的名称,比如命名为:`db-rules`,约束AI在编写数据库项目的规范
![img](https://i-blog.csdnimg.cn/direct/4d7d1366a0ca4b98825ea4f18ac5da9e.png)
添加成功后,在左边的资源管理器中能看到.cursor\rules目录下多了个 db-rules.mdc,把我们自己编写的规则粘贴到这个文件。
![image-20250630100042986](C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20250630100042986.png)
规则文件是md格式,可以使用其它AI工具进行编写(deepseek、智普清言、豆包等),自己再加以修改。
同时,在编写规则文件时,可以使用@来添加引入文件,文件中的内容会作为额外上下文添加到规则文件中。
![image-20250630100519714](C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20250630100519714.png)
**Cursor 支持四种规则类型:**
- Always:始终应用规则(想始终生效)
- Auto Attached:当匹配 globs 模式的文件被引用时自动附加规则(想自动触发用)
- Agent Requested:根据 AI 代理的判断决定是否应用规则,需要提供规则说明(想让 AI 自己决定是否用)
- Manual:仅在提示中显式使用 @规则名 时附加规则。(想手动调用规则)
### 2. Cursor规则使用
- #### Ctrl+L 打开会话,在会话中添加上面新建的db-rules,使得AI结合自定义的规则回答问题
![image-20250630100706493](C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20250630100706493.png)
![image-20250630100739316](C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20250630100739316.png)
### 3. 脚本生成对比(使用rule前后对比)
- #### 使用规则前生成数据库脚本:
```mysql
CREATE TABLE question_category (
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
parent_id BIGINT DEFAULT NULL COMMENT '父节点ID,根节点为NULL',
name VARCHAR(100) NOT NULL COMMENT '节点名称',
level INT DEFAULT 1 COMMENT '层级',
sort INT DEFAULT 0 COMMENT '排序',
remark VARCHAR(255) DEFAULT NULL COMMENT '备注',
is_leaf TINYINT DEFAULT 0 COMMENT '是否叶子节点'
);
```
- #### 使用规则后生成数据库脚本:
```mysql
CREATE TABLE t_question_type (
id INT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
parentId INT NOT NULL DEFAULT 0 COMMENT '父节点ID,根节点为0',
typeName VARCHAR(100) NOT NULL COMMENT '问题类型/明细名称',
level TINYINT NOT NULL DEFAULT 1 COMMENT '层级:1-大类,2-子类,3-明细',
sortNo INT NOT NULL DEFAULT 0 COMMENT '排序号',
createTime DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updateTime DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
d TINYINT(1) DEFAULT 0 COMMENT '删除标志:1-删除;0-未删除'
) ENGINE=InnoDB COMMENT '问题类型树形结构表';
```
**Cursor问答内容:**
根据你提供的图片内容,结合你的数据库设计规范(db-rule),我将“问题类型-反馈问题详细”这张表的信息,设计为一张树形结构的表,适合存储分级问题类型及其详细内容。
表名、字段名、注释等均严格遵循你的规范。
##### 表结构设计说明
- 表名:t_question_type
- 字段:
- id:主键,自增
- parentId:父节点ID,根节点为0
- typeName:类型/问题名称
- level:层级(1=大类,2=子类,3=明细)
- sortNo:排序号
- createTime、updateTime、d:基础字段
## 使用体验
### Cursor规则使用总结
- 添加统一规则约束,减少每次对话中的冗余聊天。
- 可针对不同项目设置不同的规则,生成代码的目的性更强。
### 注意事项
- 规则设计需要结合实际项目场景,例如:字段长度、索引规则,需要结合实际业务场景考虑,或者单独在对话中表明。
- 规则设计要更加精准,这样可以更好的和“AI幻觉”做对抗。
---
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment