# 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](../assets/images/cursor-rules-add-image1.png)

当我们点击 【Add New Rule】后，先输入规则的名称，比如命名为：`db-rules`，约束AI在编写数据库项目的规范

![img](../assets/images/cursor-rules-add-image2.png)

添加成功后，在左边的资源管理器中能看到.cursor\rules目录下多了个 db-rules.mdc，把我们自己编写的规则粘贴到这个文件。

![image-20250630100042986](../assets/images/cursor-rules-add-image3.png)

规则文件是md格式，可以使用其它AI工具进行编写（deepseek、智普清言、豆包等），自己再加以修改。

同时，在编写规则文件时，可以使用@来添加引入文件，文件中的内容会作为额外上下文添加到规则文件中。

![image-20250630100519714](../assets/images/cursor-rules-add-image4.png)

**Cursor 支持四种规则类型：**

- Always：始终应用规则（想始终生效）

- Auto Attached：当匹配 globs 模式的文件被引用时自动附加规则（想自动触发用）
- Agent Requested：根据 AI 代理的判断决定是否应用规则，需要提供规则说明（想让 AI 自己决定是否用）
- Manual：仅在提示中显式使用 @规则名 时附加规则。（想手动调用规则）

### 2. Cursor规则使用

- #### Ctrl+L 打开会话，在会话中添加上面新建的db-rules，使得AI结合自定义的规则回答问题

![image-20250630100706493](../assets/images/cursor-rules-add-image5.png)

![image-20250630100739316](../assets/images/cursor-rules-add-image6.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幻觉”做对抗。

---





