目录
- NocoDB 简介
- 安装与设置
- 创建表格
- 字段类型与配置
- 视图与筛选
- 协作与分享
- API 与集成
- 高级功能
简介
NocoDB 将现有数据库转换为智能电子表格,提供类似 Airtable 的界面而无供应商锁定。它连接 MySQL、PostgreSQL、SQLite 等。
| 功能 | 描述 | 好处 |
|---|
| 无代码界面 | 可视化数据库管理 | 无需 SQL |
| 多种视图 | 网格、画廊、看板、表单 | 灵活展示 |
| API 自动生成 | 每个表格的 REST API | 易于集成 |
| 自托管 | 完全数据控制 | 隐私 |
| 开源 | 免费使用 | 无供应商锁定 |
| 功能 | NocoDB | Airtable | Google Sheets |
|---|
| 自托管 | 是 | 否 | 否 |
| 开源 | 是 | 否 | 否 |
| 数据库支持 | MySQL, PG, SQLite | 专有 | 专有 |
| API | 自动生成 | 手动 | 有限 |
| 成本 | 免费 | 订阅 | 免费/订阅 |
支持的数据库
| 数据库 | 版本 | 连接方式 |
|---|
| MySQL | 5.7+ | 直连 |
| PostgreSQL | 10+ | 直连 |
| SQLite | 3+ | 文件 |
| SQL Server | 2017+ | 直连 |
| MariaDB | 10.3+ | 直连 |
安装与设置
NocoDB 可以通过 Docker、npm 或独立应用安装。
# docker-compose.yml
version: '3'
services:
nocodb:
image: nocodb/nocodb:latest
ports:
- "8080:8080"
volumes:
- nocodb:/usr/app/data
environment:
- NC_DB=pg://db:5432?u=nocodb&p=password&d=nocodb
depends_on:
- db
db:
image: postgres:14
volumes:
- db:/var/lib/postgresql/data
environment:
- POSTGRES_PASSWORD=password
- POSTGRES_USER=nocodb
- POSTGRES_DB=nocodb
volumes:
nocodb:
db:
# Install globally
npm install -g nocodb
# Run
nocodb
系统要求
| 组件 | 最低 | 推荐 |
|---|
| CPU | 1 核 | 2 核 |
| 内存 | 1GB | 2GB |
| 存储 | 1GB | 10GB |
| Node.js | v16 | v18 LTS |
首次设置
创建表格
表格是 NocoDB 数据库的基础。
创建新表格
| 步骤 | 操作 | 选项 |
|---|
| 1 | 点击 "+" | 添加新表格 |
| 2 | 命名表格 | 描述性名称 |
| 3 | 添加列 | 定义字段 |
| 4 | 设置主键 | ID 或自定义 |
| 5 | 创建 | 表格就绪 |
表格操作
| 操作 | 描述 | 快捷方式 |
|---|
| 重命名 | 更改表格名称 | 右键菜单 |
| 复制 | 复制结构 | 右键菜单 |
| 删除 | 移除表格 | 右键菜单 |
| 导出 | 下载为 CSV | 文件菜单 |
导入数据
| 来源 | 格式 | 步骤 |
|---|
| CSV | .csv | 上传文件 |
| JSON | .json | 上传文件 |
| Excel | .xlsx | 上传文件 |
| Airtable | API | 导入向导 |
表格模板
| 模板 | 用途 | 包含字段 |
|---|
| 项目跟踪 | 任务管理 | 任务、状态、负责人 |
| 库存 | 库存管理 | 物品、数量、价格 |
| CRM | 联系人管理 | 姓名、邮箱、电话 |
| 活动策划 | 活动管理 | 活动、日期、地点 |
字段类型与配置
NocoDB 支持多种字段类型以满足不同数据需求。
基本字段类型
| 类型 | 描述 | 示例 |
|---|
| SingleLineText | 短文本 | 姓名、标题 |
| LongText | 段落 | 描述、备注 |
| Number | 数值 | 价格、数量 |
| Checkbox | 布尔值 | 是/否 |
| SingleSelect | 下拉菜单 | 状态、类别 |
| MultiSelect | 多选 | 标签、标记 |
高级字段类型
| 类型 | 描述 | 用途 |
|---|
| Date | 日期选择器 | 生日、截止日期 |
| DateTime | 日期和时间 | 约会 |
| Email | 邮箱验证 | 联系信息 |
| URL | 链接验证 | 网站 |
| Phone | 电话号码 | 联系信息 |
| Currency | 货币值 | 价格、成本 |
计算字段
| 类型 | 描述 | 示例 |
|---|
| Formula | 计算值 | 价格 * 数量 |
| Lookup | 引用其他表格 | 关联记录 |
| Rollup | 聚合数据 | 求和、平均 |
| Count | 计数记录 | 物品数量 |
字段配置选项
| 选项 | 适用类型 | 描述 |
|---|
| 必填 | 所有类型 | 必须填写 |
| 默认值 | 大多数类型 | 预填 |
| 唯一 | 文本、数字 | 不允许重复 |
| 最小/最大 | 数字 | 值范围 |
| 选项 | 选择 | 选项列表 |
字段类型对比
| 类型 | 存储 | 验证 | 显示 |
|---|
| SingleLineText | 字符串 | 长度限制 | 单行 |
| LongText | 文本 | 无 | 多行 |
| Number | 数字 | 仅数字 | 格式化 |
| Email | 字符串 | 邮箱格式 | 可点击链接 |
| URL | 字符串 | URL 格式 | 可点击链接 |
视图与筛选
视图控制你如何可视化和交互数据。
视图类型
| 视图 | 布局 | 最适合 |
|---|
| Grid | 电子表格 | 通用数据 |
| Gallery | 卡片网格 | 可视化项目 |
| Kanban | 列 | 状态追踪 |
| Form | 输入表单 | 数据收集 |
创建视图
| 步骤 | 操作 | 结果 |
|---|
| 1 | 点击视图菜单 | 打开选项 |
| 2 | 选择视图类型 | Grid、Gallery 等 |
| 3 | 命名视图 | 描述性名称 |
| 4 | 配置 | 排序、筛选、字段 |
| 5 | 保存 | 视图创建完成 |
数据筛选
| 操作符 | 类型 | 示例 |
|---|
| 等于 | 文本、数字 | 状态等于 "Done" |
| 不等于 | 文本、数字 | 状态不等于 "Done" |
| 包含 | 文本 | 名称包含 "test" |
| 大于 | 数字 | 价格 > 100 |
| 为空 | 所有 | 字段为空 |
| 不为空 | 所有 | 字段有值 |
排序
| 设置 | 选项 | 用途 |
|---|
| 字段 | 任意字段 | 排序依据 |
| 方向 | 升序/降序 | 顺序 |
| 多重 | 链式排序 | 复杂排序 |
分组
| 设置 | 描述 | 示例 |
|---|
| 分组依据 | 分组字段 | 按状态 |
| 子分组 | 额外分组 | 按负责人 |
| 折叠 | 隐藏分组 | 聚焦特定 |
协作与分享
NocoDB 支持多种分享选项的团队协作。
用户角色
| 角色 | 权限 | 可以做 |
|---|
| Super Admin | 完全控制 | 一切 |
| Admin | 项目管理 | 创建、编辑、删除 |
| Editor | 数据编辑 | 添加、编辑记录 |
| Commenter | 仅评论 | 读取、评论 |
| Viewer | 只读 | 查看数据 |
添加协作者
| 步骤 | 操作 | 备注 |
|---|
| 1 | 打开项目设置 | 齿轮图标 |
| 2 | Team & Auth | 协作部分 |
| 3 | 通过邮箱邀请 | 输入邮箱 |
| 4 | 分配角色 | 选择权限 |
| 5 | 发送邀请 | 邮件通知 |
分享视图
| 分享类型 | 访问 | 安全性 |
|---|
| 私有 | 仅团队 | 认证 |
| 公开链接 | 有链接的人 | 可选密码 |
| 嵌入 | iframe | 域名限制 |
评论与提及
| 功能 | 描述 | 通知 |
|---|
| 评论 | 添加到记录 | 团队通知 |
| 提及 | @username | 直接通知 |
| 回复 | 话题回复 | 话题通知 |
NocoDB 为所有表格自动生成 REST API。
| 方法 | 端点 | 描述 |
|---|
| GET | /api/v1/tables/{id}/records | 列出记录 |
| POST | /api/v1/tables/{id}/records | 创建记录 |
| GET | /api/v1/tables/{id}/records/{id} | 获取记录 |
| PATCH | /api/v1/tables/{id}/records/{id} | 更新记录 |
| DELETE | /api/v1/tables/{id}/records/{id} | 删除记录 |
| 方式 | Header | 用途 |
|---|
| API Token | xc-auth | 服务间通信 |
| JWT | Authorization | 用户会话 |
| 步骤 | 操作 | 结果 |
|---|
| 1 | 打开项目设置 | 齿轮图标 |
| 2 | API Tokens | Token 管理 |
| 3 | 添加新 token | 生成 |
| 4 | 复制 token | 在请求中使用 |
集成选项
| 集成 | 方式 | 用途 |
|---|
| Zapier | Webhook | 自动化 |
| Make | Webhook | 复杂工作流 |
| n8n | API | 自托管自动化 |
| 自定义 | REST API | 任意应用 |
# List all records
curl -X GET 'https://your-nocodb.com/api/v1/tables/tableId/records' \
-H 'xc-auth: your-token'
# Create a record
curl -X POST 'https://your-nocodb.com/api/v1/tables/tableId/records' \
-H 'xc-auth: your-token' \
-H 'Content-Type: application/json' \
-d '{"Name": "New Item", "Status": "Active"}'
高级功能
NocoDB 高级功能面向进阶用户。
公式
| 函数 | 描述 | 示例 |
|---|
| CONCAT | 连接文本 | CONCAT(First, " ", Last) |
| IF | 条件 | IF(Status="Done", 100, 0) |
| SUM | 求和 | SUM(Price, Tax) |
| AVG | 平均 | AVG(Scores) |
| COUNT | 计数 | COUNT(Items) |
| 配置 | 描述 | 示例 |
|---|
| 链接表格 | 关联表格 | Orders → Customers |
| Lookup 字段 | 要检索的字段 | Customer Name |
| 聚合 | 如何组合 | First, List |
| 事件 | 触发 | 用途 |
|---|
| 插入后 | 新记录 | 通知 |
| 更新后 | 记录变更 | 同步数据 |
| 删除后 | 记录移除 | 清理 |
| 手动 | 按钮点击 | 自定义操作 |
审计日志
| 记录的操作 | 信息 | 保留 |
|---|
| 记录创建 | 谁、何时、数据 | 可配置 |
| 记录更新 | 谁、何时、变更 | 可配置 |
| 记录删除 | 谁、何时 | 可配置 |
| 视图变更 | 谁、何时 | 可配置 |
数据验证
| 验证 | 字段类型 | 规则 |
|---|
| 必填 | 所有 | 必须填写 |
| 唯一 | 文本、数字 | 不允许重复 |
| 模式 | 文本 | 正则匹配 |
| 范围 | 数字 | 最小/最大值 |
总结
| 主题 | 核心要点 |
|---|
| 安装 | Docker 简化部署 |
| 表格 | 可视化数据库管理 |
| 字段 | 多种类型带验证 |
| 视图 | Grid、Gallery、Kanban、Form |
| API | 自动生成 REST API |
| 协作 | 团队角色和分享 |