NocoBase:数据模型驱动的可扩展无代码开发平台

背景

企业在数字化转型过程中,面临着这样的困境:

  • 采购成熟系统:价格昂贵,定制困难,学习成本高
  • 传统开发:周期长、成本高、维护难
  • 现有 SaaS:数据不自主,功能固定,集成困难

无代码/低代码平台的出现,就是为了平衡"灵活定制"和"快速交付"的需求。

提到无代码平台,很多人会想到 FileMaker、Airtable。但这些大多是闭源 SaaS,数据存储在第三方服务器。

今天介绍一款开源的可扩展无代码平台——NocoBase,它以"数据模型驱动"为核心理念,在 GitHub 上已获得 23K+ Star

什么是 NocoBase?

NocoBase 是一个以可扩展性为核心的开源无代码/低代码开发平台,采用数据模型驱动的方法,让用户无需编程即可构建业务应用程序。

核心特性:

特性 说明
数据模型驱动 数据结构与界面分离,灵活度高
AI 员工集成 将 AI 能力嵌入业务系统和流程
所见即所得 可视化配置,所见即所得
插件化架构 一切皆插件,高度可扩展
自托管 数据完全自主,支持 Docker 部署
多数据库 支持 MySQL、PostgreSQL、SQLite 等

GitHub 地址: https://github.com/nocobase/nocobase

官网: https://www.nocobase.com

在线体验: https://demo.nocobase.com/new

核心理念:数据模型驱动

NocoBase 与传统的表单/表格驱动的无代码平台不同:

对比项 传统无代码平台 NocoBase
驱动方式 表单驱动 / 表格驱动 数据模型驱动
数据结构 固定模板 自定义数据模型
界面绑定 界面即数据 界面与数据分离
灵活性 受限 高度灵活

数据模型驱动的优势:

一个数据模型(表)可以创建多个不同用途的页面

用户表(数据模型)
├── 用户列表页面(管理所有用户)
├── 用户详情页面(查看单个用户)
├── 个人中心页面(用户自己的信息)
└── 用户选择器(在其他地方选择用户)

快速上手

方式一:Docker 部署(推荐)

# 拉取镜像
docker pull nocobase/nocobase:latest

# 创建目录
mkdir nocobase && cd nocobase

# 下载 docker-compose 文件
curl -O https://raw.githubusercontent.com/nocobase/nocobase/main/docker/docker-compose.yml

# 启动服务(SQLite 适用于测试环境)
docker-compose up -d

# 访问管理后台
# http://localhost:13000
# 初始管理员:admin@nocobase.com / admin123

方式二:使用 MySQL/PostgreSQL

version: '3.8'

services:
  nocobase:
    image: nocobase/nocobase:latest
    container_name: nocobase
    restart: unless-stopped
    ports:
      - "13000:13000"
    environment:
      - DB_DIALECT=mysql
      - DB_HOST=localhost
      - DB_PORT=3306
      - DB_DATABASE=nocobase
      - DB_USER=nocobase
      - DB_PASSWORD=your-password
    volumes:
      - ./storage:/app/storage

  mysql:
    image: mysql:8.0
    container_name: nocobase-mysql
    restart: unless-stopped
    environment:
      - MYSQL_ROOT_PASSWORD=root-password
      - MYSQL_DATABASE=nocobase
      - MYSQL_USER=nocobase
      - MYSQL_PASSWORD=your-password
    volumes:
      - mysql_data:/var/lib/mysql

volumes:
  mysql_data:

方式三:命令行创建项目

# 使用 npx 创建项目
npx create-nocobase-app my-app

cd my-app

# 安装依赖
npm install

# 启动开发服务器
npm run dev

# 构建生产版本
npm run build

核心功能详解

1. 数据表(Collection)

创建数据模型就像创建 Excel 表格一样简单:

创建步骤:

1. 进入管理后台
2. 点击"设置" → "数据表" → "新建"
3. 输入表名(如:工单)
4. 添加字段(名称、类型、配置)
5. 保存

支持的字段类型:

分类 字段类型
文本 文本、文本区、长文本、邮箱、手机、URL
数字 整数、小数、货币
日期时间 日期、日期时间、年份、时间
选择 单选、多选、布尔、评分
关联 关系(一对一、一对多、多对多)
文件 附件、图片、头像
组织 用户、部门、角色
其他 公式、序号、JSON

2. 关系定义

NocoBase 支持丰富的数据关系:

// 一对多关系:部门 → 员工
{
  "name": "employees",
  "type": "hasMany",
  "target": "users",
  "foreignKey": "departmentId"
}

// 多对多关系:用户 ←→ 角色
{
  "name": "users",
  "type": "belongsToMany",
  "target": "roles",
  "through": "userRoles"
}

3. 区块(Block)设计

NocoBase 的页面由各种区块组成:

区块类型:

区块 用途
表格 列表展示多条记录
表单 新建/编辑记录
详情 显示单条记录完整信息
统计 数字统计展示
看板 看板视图(Kanban)
日历 日历视图
树形 树形结构展示
筛选 条件筛选器
操作 按钮操作区

拖拽布局:

┌─────────────────────────────────────────────┐
│  页面配置                                    │
├─────────────────────────────────────────────┤
│  ┌─────────────┐  ┌─────────────────────┐  │
│  │  用户表格   │  │   用户详情区块       │  │
│  │             │  │                     │  │
│  │ 点击用户    │  │   头像、姓名...     │  │
│  │ 会自动    │  │                     │  │
│  │ 刷新右侧   │  │   相关工单列表       │  │
│  └─────────────┘  └─────────────────────┘  │
└─────────────────────────────────────────────┘

4. 工作流(Workflow)

NocoBase 内置强大的工作流引擎:

工作流节点:

节点类型 说明
触发器 表单提交、定时触发、API触发
动作 创建/更新/删除记录、发送邮件/短信
逻辑 条件分支、循环、并行
集成 审批、HTTP请求、脚本

工作流示例:工单处理流程

开始 → 提交工单 → 主管审批 → 是否通过?
                              ↓ 是 ↓ 否
                         执行操作    退回申请人
                              ↓
                         通知相关人
                              ↓
                           结束

5. 权限管理

细粒度的数据权限控制:

权限维度:

维度 说明
资源权限 谁能访问哪些数据表
字段权限 谁能查看/编辑哪些字段
数据范围 能看到哪些数据(自己/部门/全部)
操作权限 能执行哪些操作

权限规则示例:

// 只能查看自己创建的工单
{
  "scope": "createdBy.id == {{$user.id}}"
}

// 只能查看本部门的数据
{
  "scope": "department.id == {{$user.departmentId}}"
}

// 只能查看状态为"进行中"的数据
{
  "filter": {
    "status": "in_progress"
  }
}

6. AI 员工

NocoBase 将 AI 能力嵌入业务系统:

AI 角色定义:

  • 翻译员
  • 数据分析师
  • 研究员
  • 智能助手

AI 应用场景:

// 在工作流中调用 AI
{
  "type": "ai",
  "role": "analyst",
  "prompt": "分析以下工单,提取关键信息和优先级",
  "input": "{{$trigger.data}}"
}

// 在界面中嵌入 AI 助手
{
  "type": "ai-chat",
  "role": "assistant",
  "context": "当前工单的相关信息"
}

实战:搭建工单管理系统

步骤1:创建数据表

工单表(tickets):

字段名 类型 说明
title 文本 工单标题
description 长文本 工单描述
status 单选 状态(待处理/处理中/已完成)
priority 单选 优先级(低/中/高/紧急)
submitter 关联(用户) 提交人
assignee 关联(用户) 负责人
createdAt 日期时间 创建时间(自动)

用户表(users): 使用系统内置用户表

步骤2:创建页面

工单列表页面:

1. 新建页面"工单管理"
2. 添加区块:工单表格
3. 配置表格字段显示
4. 添加筛选区块:按状态、优先级筛选

工单详情页面:

1. 新建页面"工单详情"(设置 URL 参数:/:id)
2. 添加区块:工单详情
3. 添加区块:关联的操作记录(子表格)

步骤3:配置权限

普通用户权限:

- 工单表:查看自己提交的工单
- 提交工单:允许
- 编辑工单:仅自己的工单

客服人员权限:

- 工单表:查看所有工单
- 编辑工单:允许
- 分配工单:允许

步骤4:创建工作流

工单提交通知流程:

触发器:提交工单
  ↓
条件判断:优先级是否为"紧急"
  ↓ 是
发送邮件:通知技术负责人
  ↓
更新工单:状态变为"处理中"

插件系统

NocoBase 的所有功能都是插件,可以按需安装:

官方插件:

插件 功能
@nocobase/plugin-workflow 工作流引擎
@nocobase/plugin-ui-routes 页面路由管理
@nocobase/plugin-auth 认证授权
@nocobase/plugin-file-manager 文件管理
@nocobase/plugin-charts 图表统计
@nocobase/plugin-notification 通知中心

安装插件:

# 命令行安装
npm install @nocobase/plugin-charts

# 管理后台安装
# 设置 → 插件 → 搜索 → 安装

开发自定义插件:

# 创建插件
npx nocobase create plugin my-plugin

# 目录结构
my-plugin/
├── package.json
├── src/
│   ├── index.ts          # 插件入口
│   ├── client.ts         # 前端代码
│   └── server.ts        # 后端代码
└── README.md

常见问题

Q:NocoBase 和 Airtable 有什么区别?

A:

  • NocoBase 开源且可自托管,Airtable 是 SaaS
  • NocoBase 支持复杂权限和工作流
  • NocoBase 可深度定制和扩展

Q:能用于生产环境吗?

A:可以。NocoBase 已被多家企业用于生产环境,支持:

  • 水平扩展
  • 高可用部署
  • 数据备份恢复

Q:数据存在哪里?

A:

  • 自托管版本:数据存储在你自己的数据库
  • 支持 MySQL、PostgreSQL、SQLite、MariaDB

Q:如何升级?

A:

# Docker 部署
docker-compose pull && docker-compose up -d

# 源码部署
git pull origin main
npm install
npm run build

适用场景

推荐使用:

  • 企业内部管理系统(CRM、OA、ERP)
  • 数据采集和审批流程
  • 项目管理和任务跟踪
  • 客户关系管理
  • 库存和订单管理

不推荐使用:

  • 需要复杂业务逻辑的场景(建议定制开发)
  • 高并发面向用户的 C端应用
  • 需要复杂报表和分析的系统

总结

NocoBase 用"数据模型驱动 + AI 集成 + 插件架构"的组合,重新定义了无代码开发平台的可能性。

核心优势回顾:

  • 数据模型驱动:数据结构与界面分离,灵活度高
  • AI 原生:将 AI 能力嵌入业务系统
  • 所见即所得:可视化配置,简单易用
  • 插件化架构:高度可扩展,按需安装
  • 数据自主:支持完全自托管
  • 企业级:细粒度权限、工作流、高可用

对于需要快速搭建业务系统、追求数据自主、有一定定制需求的企业,NocoBase 是绝佳选择。


本文由无边界科技技术团队分享,专注软件开发与技术解决方案。

官网:wubianj.com

© 版权归无边界科技所有,版权所有。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐