工单系统数据建模:两张表搞定完整教程与模板

2026-06-14阅读 0热度 0
开源

上一章完成了 NocoBase 的安装和环境熟悉,现在进入核心环节:为工单系统搭建数据模型。本章将定义工单与分类两张数据表,配置字段类型(单行文本、下拉菜单、多对一关联等),并建立表间的映射关系。数据模型构筑了系统的基石——先理清需要存储哪些信息以及它们之间的逻辑关联,后续的界面搭建和权限配置才能顺利衔接。

2.1 数据表与字段的核心概念

借助Excel类比,NocoBase的数据表概念一目了然:

Excel 概念NocoBase 概念说明
工作表数据表(Collection)同一类数据的容器
列标题字段(Field)刻画数据的属性维度
每一行记录(Record)一条完整的数据条目

比如我们即将创建的“工单表”,本质上就是一张Excel表格——每一列定义一个字段(标题、状态、优先级……),每一行承载一条工单记录。

但NocoBase的功能远超Excel。它支持多种数据表类型,不同表型内置差异化能力:

表类型适用场景示例
普通表标准业务数据工单、订单、客户库
树表带层级关系的数据分类目录、部门架构
日历表日期相关事件会议安排、排班表
文件表附件资源管理文档库、图片集

本次操作主要用到普通表树表,其他类型后续按需学习。

进入数据源管理:点击左下角 「数据源管理」 图标(齿轮旁的数据库形状图标),可见「主数据源」——所有业务表均在此处构建。

2.2 创建核心表:工单

直接进入实操,打造系统的核心——工单表。

创建表

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

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

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

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

字段说明
ID主键,分布式唯一标识
创建日期记录生成时间
创建人提交记录的用户
最后修改日期最近一次更新时间
最后修改人最近一次修改的用户

这些系统字段保持默认即可,无需手动干涉。若特定场景不需要,也可取消勾选。

添加基础字段

表创建完成后,接下来填充字段。点击工单表的 「配置字段(Configure fields)」,可见刚才默认的系统字段已在列表中。

点击右上角的 「添加字段(Add field)」 按钮,弹出下拉字段类型列表——从中挑选需要的字段类型。

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

1. 标题(单行文本)

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

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

2. 描述(Markdown(Vditor))

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

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

我们选择 Markdown(Vditor)

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

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


工单从提交到完结,需要状态来跟踪进度。

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

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

首次创建时选项数据尚未入库,所以默认值无法选中——需要保存后再回来设置。

为什么选用下拉单选?因为状态是有限的固定值,下拉菜单能杜绝用户随意填写,保障数据规范化。

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

用于区分工单的紧急级别,方便处理人按优先级排队处理。

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

至此,工单表拥有了 4 个基础字段。但工单应该关联一个“分类”吧?比如“网络故障”“软件报错”?

若将分类做成下拉菜单,也不是不行。不过你会发现:分类很可能包含子分类(例如“硬件问题”下还有“显示器”“键盘”“打印机”),单靠下拉菜单无法有效管理。

需要另一张独立表来专门管理分类。而且这张表,使用 NocoBase 的树表构建最为合适。

2.3 创建分类树表:实现层级化管理

树表的定义

树表是一种特殊的数据表,内置父子关系——每条记录可以设定一个“父节点”。天然适合层级结构的数据:

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

如果使用普通表,你需要手动创建一个“父分类”字段来模拟这种关系。而树表自动完成这一切,并支持树形展示、快捷添加子记录等操作,大幅降低维护成本。

创建表

  1. 返回数据源管理,点击 「创建数据表」
  2. 这次选择 「树表」(而非普通表!)
  3. 数据表名称:categories,数据表标题:工单分类

注意创建后,表里除系统字段外,会自动生成 「Parent」「Children」 两个关系字段——这正是树表的特殊能力。通过 Parent 可访问父节点,通过 Children 可遍历所有子节点,无需手动添加。

添加字段

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

字段一:分类名称

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

字段二:颜色

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

颜色字段可为每个分类赋予标识色,后续在界面展示时更直观易辨。

至此,两张数据表的基础字段配置完毕。接下来将它们关联起来。

2.4 返回工单表:配置关联字段

关系字段初次接触可能有些抽象。 如果感觉不好理解,可以先跳到第 3 章:搭建页面,在实际界面操作中感受数据如何呈现,之后再回过头来补充关联字段。

工单需要关联分类、提交人和处理人。这类字段就是关系字段——它不像“标题”那样直接存储一段文字,而是存储另一张表里某条记录的 ID,通过该 ID 精准定位目标记录。

以一条具体工单为例——左侧是工单的各个属性,其中“分类”和“提交人”存储的不是文字,而是一个 ID。系统通过这个 ID,从右侧的表中精确映射对应的记录:

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

添加关系字段

回到工单表的「配置字段」→「添加字段」,选择 「多对一」

创建时你会看到以下配置项:

配置项说明填写建议
源数据表当前表(自动填充)无需修改
目标数据表要关联的目标表选择对应的业务表
外键存储在当前表中的关联列名设置有意义的名字
目标数据表标识字段默认 id保持默认即可
ON DELETE目标记录被删除时的处理策略保持默认即可

外键默认生成随机名(如 f_xxxxx),建议改为易识别的名称,便于后期维护。命名采用小写字母加下划线(如 category_id),避免大小写混用。

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

5. 分类 → 工单分类表

  • 字段标题:分类
  • 目标数据表:选择 「工单分类」(若列表未出现,直接输入表名会自动创建)
  • 外键:category_id

6. 提交人 → 用户表

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

  • 字段标题:提交人
  • 目标数据表:选择 「用户」
  • 外键:submitter_id

7. 处理人 → 用户表

记录负责处理这条工单的人员。

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

2.5 数据模型全貌

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

}o--|| 表示多对一关系:左侧“多”,右侧“一”。

小结

本章完成了数据建模——工单系统的骨架已成型:

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

掌握了几个关键概念:

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

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

下一章预告

骨架搭好,但表里尚无数据。下一章,我们将搭建页面,让数据真正可视化。

我们下章见!

免责声明

本网站新闻资讯均来自公开渠道,力求准确但不保证绝对无误,内容观点仅代表作者本人,与本站无关。若涉及侵权,请联系我们处理。本站保留对声明的修改权,最终解释权归本站所有。

相关阅读

更多
欢迎回来 登录或注册后,可保存提示词和历史记录
登录后可同步收藏、历史记录和常用模板
注册即表示同意服务条款与隐私政策