Skip to content
| Marketplace
Sign in
Visual Studio Code>Snippets>Peanut Database DesignerNew to Visual Studio Code? Get it now.
Peanut Database Designer

Peanut Database Designer

xiaohulu

|
21 installs
| (0) | Free
数据库设计助手
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

peanut-database-designer

数据库设计助手。使用 markdown 设计数据库的表结构。

  1. 使用代码片段快速生成一段文档。
  2. 使用自动补全精准引用本表字段或他表字段。

设计文档示例

# `table_1` - 表注释

表说明。

## 字段

| 字段名      | 注释     | 类型        | 默认值 | 主键 | 可空 |
| ----------- | -------- | ----------- | ------ | ---- | ---- |
| dbid        | 主键     | bigint      |        | 是   | 否   |
| name        | 名称     | varchar(32) |        |      | 否   |
| master_id   | 主表标识 | bigint      |        |      | 否   |
| create_by   | 创建人   | bigint      |        |      | 否   |
| create_time | 创建时间 | datetime    |        |      | 否   |
| update_by   | 更新人   | bigint      |        |      | 是   |
| update_time | 更新时间 | datetime    |        |      | 是   |

## 约束

1. 主键: `pk_table_1`
2. 外键: `fk_table_1_master_id`, `master_id` 关联 `master_table.dbid`
3. 唯一: `uk_table_1_name`, 对应字段 `name`

## 索引

无

## 说明

1. 计量单位: 无
2. 数据字典: 无

代码片段

前缀 p 是 peanut [ˈpiːnʌt] 落花生 的首字母。

  1. p-table - 设计一张数据库表结构
  2. p-column - 新增一个空的字段行
  3. p-column-seq - 新增一个序号字段行
  4. p-column-parent - 新增一个父级字段行
  5. p-fk - 新增一个外键约束
  6. p-uk - 新增一个唯一约束

自动补全

  1. 按下 Alt + / 手动触发自动补全
  2. 外键约束,格式如下
     `fk_table_name_field_1`, `field_1` 关联 `master_table.dbid`
      ^^^^^^^^^^^^^^^^^^^^^    ^^^^^^^        ^^^^^^^^^^^^ ^^^^
      外键名称                  字段名         引用表名     .引用表字段
      │                        │              │            └── 输入.后提示引用表中的主键字段,通常是dbid
      │                        │              └── 自动补全表名
      │                        └── 提示本表中的字段列表,选择一个字段后生成外键名称
      └── 不用填写,会自动生成,规则为 fk_{表名}_{字段名}
    
  3. 唯一约束,格式如下
     一个字段:`uk_table_name_filed_1`, 字段为 `field_1`
     两个字段:`uk_table_name_filed_1_field_2`, 字段为 `field_1` 和 `field_2`
     三个字段:`uk_table_name_filed_1_field_2_field_3`, 字段为 `field_1`、`field_2` 和 `field_3`
    
     以三个字段为例
     `uk_table_name_filed_1_field_2_field_3`, 字段为 `field_1`、`field_2` 和 `field_3`
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^           ^^^^^^ ^  ^^^^^^^  ^   ^^^^^^^
      │                                               │      │  │        │   └── Alt+/ 后提示字段列表,其中已排除 field_1 和 field_2
      │                                               │      │  │        └── 输入“和”后自动输入 ``,并提示字段列表,其中已排除 field_1 和 field_2
      │                                               │      │  └── Alt+/ 后提示字段列表,其中已排除 field_1
      │                                               │      └── 输入“、”后自动输入 ``,并提示字段列表,其中已排除 field_1
      │                                               └── Alt+/ 后提示字段列表
      └── 不用填写,会自动生成,规则为 uk_{表名}_{字段1}_{字段2} 等,支持任意多个字段
    
  4. 说明中引用本表字段(避免输入 ``,因为需要中英文切换)
    1. `field_1(字段一)`
       ^
       在此处按下 Alt+/ 提示本表中的字段列表和其他表名
       选中之后,以 \`字段名(字段注释)\` 的方式展示
    
  5. 说明中引用其他表字段(避免输入 ``,因为需要中英文切换)
    1. `table1(表一).field_1(字段一)`
       ^            ^
       │            输入 . 后,提示选中表中的字段,
       |            选中字段后,以 \`字段名(字段注释)\` 的方式展示
       │
       在此处按下 Alt+/ 提示本表中的字段列表和其他表名
       选中其他表之后,以 \`表名(表注释)\` 的方式展示
    

语法校验

语法校验,有四种级别

  1. 警告 warning
  2. 错误 error

支持以下校验

  1. 表名
    1. 必须与文件名相同,不包含扩展名 error
    2. 必须采用 snake_case 命名法 error
    3. 全局不能重复 error
  2. 表注释
    1. 中间不能包含空白字符 warning
  3. 字段
    1. 字段名
      1. 必须采用 snake_case 命名法 error
      2. 不能重复 error
    2. 注释
      1. 中间不能包含空白字符 warning
    3. 类型
      1. 有效类型名:boolean、char、varchar、int、bigint、float、double、decimal、date、datetime、time
      2. char、varchar 明确指定长度,长度必须大于1
      3. float、double、decimal 明确指定精度和标度,
        1. 精度的取值范围为1到65
        2. 标度的取值范围为0到30
        3. 标度必须小于或等于精度
    4. 默认值
      1. 如果是 boolean 类型,则值为 true 或 false
      2. 如果是 char 类型,则默认值的长度跟char中指定的长度要一致
      3. 如果是 int、bigint,则必须是整数
      4. 如果是 float、double、decimal,则必须是有效数字
    5. 可空
      1. 值必须为是或否
      2. 不能为空
  4. 主键约束 2. 约束名必须是 pk_{表名}
  5. 外键约束
    1. 格式必须为:fk_table_1_master_id, master_id 关联 master_table.dbid
    2. 约束名必须是 fk_{表名}_{字段名}
    3. 本表中的字段名必须存在
    4. 引用表的表名必须存在
    5. 引用字段必须存在
    6. 引用表与引用字段必须用.隔开
  6. 唯一约束
    1. 格式必须为 uk_table_name_filed_1_field_2_field_3, 字段为 field_1、field_2 和 field_3
    2. 约束名必须是 uk_{表名}_{字段名}
    3. 字段名必须存在

跳转到定义

1. `fk_table_name_field_1`, `field_1` 关联 `master_table.dbid`
                                            ^^^^^^^^^^^^ ^^^
                                            │            └── 跳转到引用字段的第一列
                                            └── 跳转到引用表的第一行
2. ``

如何维护计量单位

  1. 在 /data/unit.md 文件中维护所有用到的计量单位
  2. 在每张表中引用这些单位,可在此处添加检查

部署

  1. 使用 pnpm 时报缺少依赖,改为 npm 之后正常
  2. vsce package 打包
  3. vsce publish 发布
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2025 Microsoft