logologo
开始
教程
手册
开发
插件
API
首页
English
简体中文
日本語
한국어
Español
Português
Deutsch
Français
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
开始
教程
手册
开发
插件
API
首页
logologo

V2 教程(IT 工单系统)

教程简介
第 1 章:认识 NocoBase — 5 分钟跑起来
第 2 章:数据建模 — 两张表搞定工单系统
第 3 章:搭建页面 — 从空白到可用
第 4 章:表单与详情 — 录入、展示、一步到位
第 5 章:用户与权限 — 谁能看什么
第 6 章:工作流 — 让系统自动干活
第 7 章:仪表盘 — 一眼看全局

V1 教程(旧版)

任务管理系统概览
第 1 章:初识 NocoBase
第 2 章:设计任务管理系统
第 3 章:任务数据管理
第 4 章:任务与评论插件
第 5 章:标签页与动态区块
第 6 章:用户与权限
第 7 章:工作流
项目管理平台概览
第 8 章:知识库 - 树表
第 9 章:任务看板与图表
第 10 章:看板筛选与条件
第 11 章:子任务与工时计算
第 12 章:会议室预订与工作流
实现用户注册审核
实现 CRM 线索转化
Markdown 区块技巧
CRM 销售云功能概览
线索跟进与状态管理
CRM 销售云系统
使用 API Keys 获取数据
Markdown 模板变量用法
如何更快部署 NocoBase
CRM 销售管道可视化
CRM Demo 部署指南
Previous Page第 1 章:认识 NocoBase — 5 分钟跑起来
Next Page第 3 章:搭建页面 — 从空白到可用

#第 2 章:数据建模 — 两张表搞定工单系统

上一章我们装好了 NocoBase 并认识了界面。现在,我们要给工单系统搭骨架——定义数据模型。

数据模型就是系统的地基:先想清楚要存哪些数据、数据之间有什么关系,后面搭界面、配权限才能水到渠成。

#2.1 什么是数据表和字段

如果你用过 Excel,理解数据表就很容易:

Excel 概念NocoBase 概念说明
工作表数据表(Collection)一类数据的容器
列标题字段(Field)描述数据的属性
每一行记录(Record)一条具体的数据

02-data-modeling-2026-03-11-08-32-41

比如我们要做的"工单表",就像一张 Excel 表格——每一列是一个字段(标题、状态、优先级……),每一行是一条工单记录。

不过,NocoBase 比 Excel 强大得多。它支持多种数据表类型,不同类型自带不同的能力:

表类型适合场景举例
普通表大多数业务数据工单、订单、客户
树表有层级关系的数据分类目录、部门组织架构
日历表日期事件会议、排班
文件表附件管理文档、图片

今天我们会用到普通表和树表,其他类型以后用到再学。

进入数据源管理:点击左下角 「数据源管理」 图标(齿轮旁边的数据库图标),你会看到「主数据源」——我们所有的表都建在这里。

02-data-modeling-2026-03-11-08-35-08

#2.2 创建核心表:工单

我们直奔主题,先创建系统的核心——工单表。

#创建表

  1. 在数据源管理页面,点击 主数据源 进入

02-data-modeling-2026-03-11-08-36-06

  1. 点击 「创建数据表」,选择 「普通表」

02-data-modeling-2026-03-11-08-38-52

  1. 数据表名称:tickets,数据表标题:工单

02-data-modeling-2026-03-11-08-40-34

创建表时,系统会默认勾选一组系统字段,它们会自动记录每条数据的元信息:

字段说明
ID主键,分布式唯一标识
创建日期记录的创建时间
创建人谁创建了这条记录
最后修改日期最后一次更新时间
最后修改人最后一次更新的用户

这些系统字段保持默认即可,不需要手动管理。如果某些场景不需要,也可以取消勾选。

#添加基础字段

表创建好了,接下来添加字段。点击工单表的 「配置字段(Configure fields)」,你会看到刚才默认的系统字段已经在列表中了。

02-data-modeling-2026-03-11-08-58-48

02-data-modeling-2026-03-11-08-59-47

点击右上角的 「添加字段(Add field)」 按钮,会展开一个下拉字段类型列表——从中选择你要添加的字段类型。

02-data-modeling-2026-03-11-09-00-22

我们先添加工单自身的字段,关联字段稍后再加。

1. 标题(单行文本)

每条工单都需要一个简短的标题来概括问题。点击 「添加字段」 → 选择 「单行文本」:

02-data-modeling-2026-03-11-09-01-00

  • 字段名称:title,字段标题:标题
  • 点击 「设置验证规则」,添加一条 「必填」 规则

02-data-modeling-2026-03-11-09-02-40

2. 描述(Markdown(Vditor))

用来详细描述问题,支持格式排版,方便贴图、贴代码。在「添加字段」→「Media」分类下有三种可选:

字段类型特点
Markdown基本 Markdown,简单样式
Rich Text富文本,简单样式 + 附件上传
Markdown(Vditor)功能最丰富,支持所见即所得、即时渲染、源码编辑三种模式

我们选 Markdown(Vditor)。

02-data-modeling-2026-03-11-09-09-58

  • 字段名称:description,字段标题:描述

02-data-modeling-2026-03-11-09-10-50

3. 状态(下拉菜单 - 单选)

02-data-modeling-2026-03-11-09-12-00 工单从提交到完成,需要一个状态来跟踪进度。

  • 字段名称:status,字段标题:状态
  • 添加选项值(每个选项需要填写「选项值」和「选项标签」,颜色可选):
选项值选项标签颜色
pending待处理Orange(日暮)
in_progress处理中Blue(拂晓蓝)
completed已完成Green(极光绿)

02-data-modeling-2026-03-11-09-17-44

先填好选项并保存。然后再次点击该字段的 「编辑(Edit)」,这时就能在「默认值」里选择 「待处理」 了。

02-data-modeling-2026-03-11-09-20-28

02-data-modeling-2026-03-11-09-22-34

首次创建时还没有选项数据,所以默认值选不了——需要保存后再回来设置。

为什么用下拉单选?因为状态是固定的几个值,下拉菜单可以防止用户随意填写,保证数据规范。

4. 优先级(下拉菜单 - 单选)

区分工单的紧急程度,方便处理人员按优先级排序。

  • 字段名称:priority,字段标题:优先级
  • 添加选项值:
选项值选项标签颜色
low低
medium中
high高Orange(日暮)
urgent紧急Red(薄暮)

到这里,工单表有了 4 个基础字段。但是——工单应该有个"分类"吧?比如"网络问题""软件故障"?

如果把分类做成下拉菜单,当然也行。但你很快会发现:分类可能有子分类("硬件问题"下面还有"显示器""键盘""打印机"),下拉菜单就不够用了。

我们需要另一张表来专门管理分类。而且这张表,用 NocoBase 的树表来建最合适。

#2.3 创建分类树表:让分类有层级

#什么是树表

树表是一种特殊的数据表,它自带父子关系——每条记录可以有一个"父节点"。这天然适合有层级结构的数据:

硬件问题          ← 一级分类
├── 显示器        ← 二级分类
├── 键盘鼠标
└── 打印机
软件故障
├── 办公软件
└── 系统问题
网络问题
账号权限

如果用普通表,你需要自己手动建一个"父分类"字段来实现这种关系。而树表会自动帮你处理好,还支持树形展示、添加子记录等操作,省心很多。

#创建表

  1. 回到数据源管理,点击 「创建数据表」

  2. 这次选择 「树表」(不是普通表!) 02-data-modeling-2026-03-11-09-26-07

  3. 数据表名称:categories,数据表标题:工单分类

02-data-modeling-2026-03-11-09-26-55

注意创建后,表里除了系统字段外,还会自动出现 「Parent」 和 「Children」 两个关系字段——这就是树表的特殊能力。通过 Parent 可以访问父节点,通过 Children 可以访问所有子节点,不需要你手动添加。

02-data-modeling-2026-03-11-09-27-40

#添加字段

点击 「配置字段」 进入字段列表,可以看到系统字段和自动生成的 Parent、Children 字段。 点击右上角 「添加字段」:

字段一:分类名称

  1. 选择 「单行文本」
  2. 字段名称:name,字段标题:分类名称
  3. 点击 「设置验证规则」,添加 「必填」 规则

字段二:颜色

  1. 选择 「颜色」
  2. 字段名称:color,字段标题:颜色

02-data-modeling-2026-03-11-09-28-59

颜色字段可以让每个分类有自己的标识色,后面在界面上展示时会更直观。

02-data-modeling-2026-03-11-09-29-23

到这里,两张数据表的基础字段就配好了。接下来我们把它们关联起来。

#2.4 回到工单表:添加关联字段

关系字段初次接触可能有点抽象。 如果你觉得不太好理解,可以先跳到 第 3 章:搭建页面,在实际的页面操作中感受一下数据是怎么展示的,再回来补上关联字段。

工单需要关联到分类、提交人和处理人。这类字段叫做关系字段——它不像"标题"那样直接存一段文字,而是存了另一张表里某条记录的 ID,通过这个 ID 找到对应的记录。

用一条具体的工单来看——左边是工单的各个属性,其中"分类"和"提交人"存的不是文字,而是一个 ID。系统通过这个 ID,从右边的表里精准找到对应的记录:

02-data-modeling-2026-03-12-00-50-10

你在界面上看到的是名称("网络问题""张三"),背后就是通过 ID 关联的。多条工单可以指向同一个分类或同一个用户——这种关系叫做多对一。

#添加关系字段

回到工单表的「配置字段」→「添加字段」,选择 「多对一」。 02-data-modeling-2026-03-12-00-52-39

创建时你会看到这些配置项:

配置项说明怎么填
源数据表当前表(自动填好)不用改
目标数据表要关联到哪张表选择对应的表
外键存在当前表里的关联列名填一个有意义的名字
目标数据表标识字段默认 id保持默认即可
ON DELETE目标记录被删除时的处理方式保持默认即可

02-data-modeling-2026-03-12-00-58-38

外键默认会自动生成一个随机名(如 f_xxxxx),建议改成有意义的名字,方便日后维护。命名用小写字母加下划线(如 category_id),不用大小写混合。

按这个方式依次添加三个字段:

5. 分类 → 工单分类表

  • 字段标题:分类
  • 目标数据表:选择 「工单分类」(如果列表中没有,直接输入表名会自动创建)
  • 外键:category_id

6. 提交人 → 用户表

记录是谁提交了这条工单。NocoBase 内置了用户表,直接关联即可。

  • 字段标题:提交人
  • 目标数据表:选择 「用户」
  • 外键:submitter_id 02-data-modeling-2026-03-12-01-00-09

7. 处理人 → 用户表

记录谁在负责处理这条工单。

  • 字段标题:处理人
  • 目标数据表:选择 「用户」
  • 外键:assignee_id

02-data-modeling-2026-03-12-01-00-22

#2.5 数据模型全貌

回顾一下我们搭建的完整数据模型:

02-data-modeling-2026-03-16-00-30-35

}o--|| 表示多对一关系:左边"多",右边"一"。

#小结

这一章我们完成了数据建模——整个工单系统的骨架:

  1. 工单表(tickets):4 个基础字段 + 3 个关联字段,用普通表创建
  2. 工单分类表(categories):2 个自定义字段 + 自动的 Parent/Children 字段,用树表创建,天然支持层级分类

我们学到了几个重要概念:

  • 数据表(Collection) = 一类数据的容器
  • 数据表类型 = 不同场景选不同类型(普通表、树表……)
  • 字段(Field) = 数据的属性,通过「配置字段」→「添加字段」来创建
  • 系统字段 = ID、创建日期、创建人等,建表时自动勾选
  • 关系字段(多对一) = 指向另一张表的记录,建立表与表之间的关联

你可能注意到,后续的截图中已经有数据了——这些测试数据是我们为了演示效果提前录入的,别着急。在 NocoBase 中,数据的增删改查都是通过前端页面完成的。第 3 章我们会搭建表格来展示数据,第 4 章会搭建表单来录入数据,一步步揭晓。

#下一章预告

骨架搭好了,但现在只有空表。下一章,我们要搭建页面,让数据真正能展示出来。

我们下章见!