tachybase_todo/docs/guide/basic/collections.zh-CN.md
chenos ca7af9c8cc
feat: new version of the documentation (#95)
* feat: new version of the documentation

* feat: add English catalog translation

* Update quickstart.md

* Update quickstart.zh-CN.md

* Update quickstart.zh-CN.md

* Update quickstart.zh-CN.md

* Update quickstart.zh-CN.md

* feat: update quickstart

* update doc

* update pepository api doc

Co-authored-by: ChengLei Shao <chareice@live.com>
2021-10-28 22:55:51 +08:00

83 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
order: 1
group:
title: 基础概念
path: /zh-CN/guide/basic
order: 4
---
# 数据表和字段
NocoBase 的数据表由字段(列)和记录(行)组成。数据表的概念与关系型数据库的数据表概念相近,但是字段的概念并不相同。
## 字段
NocoBase 里最常见的字段具有组件形态单行文本、多行文本、单选框。这些组件都有数值value可交由用户填写称为有值组件。结构如下
```ts
{
interface: 'textarea',
type: 'text',
name: 'description',
uiSchema: {
type: 'string',
title: '描述',
'x-component': 'Input.TextArea',
'x-decorator': 'FormItem',
},
}
```
上述是一个描述字段的配置:
- type 表示字段的存储类型,为 text 长文本类型
- uiSchema 为字段的组件参数
- uiSchema.type 为字段组件的数值类型
- uiSchema.x-component 表示组件类型,为多行输入框
- 绑定了组件的字段,都要设置一个 interface表示当前字段的类型例子描述字段为多行文本类型
除了常见的绑定了组件的字段以外,还有一些无需绑定组件的字段,如 token 字段,这类组件并不会显示在界面上。无组件字段的结构如下:
```ts
{
type: 'string',
name: 'token',
}
```
**为什么字段要区分存储类型和组件类型?**
其一:存储类型和组件类型是多对多关系,并不适合合并处理。
同一组件的 value 的类型(存储类型)可能并不相同,比如 select 的 value 可能是 string 或者 integer。同一存储类型也可能以不同的组件呈现如 string 绑定的组件可能是 Input也可能是 Select。
其二:有限的存储类型和组件类型可以组合出无数种字段类型。
单行文本、电子邮件、网址、手机号这些字段的存储类型和组件类型虽然都相同,但是校验参数并不相同,只需要调整 validate 参数即可创建出无数种字段。
## 字段的类型
| 名称 | Interface | Type | Component | 备注 |
| :------- | :-------- | :----- | :------------- | :---------------- |
| 单行文本 | string | string | Input | |
| 多行文本 | textarea | text | Input.TextArea | |
| 邮箱 | email | string | Input | validate: 'email' |
| 手机号 | phone | string | Input | validate: 'phone' |
## 可以做什么?
### 快速建模
与专业的建模工具不同NocoBase 提供了一种更利于普通用户理解的数据表配置方法。
- 可以直接通过 app.collection() 直接写代码里,多用于配置底层系统表。
- 也可以通过无代码平台的数据表配置入口配置数据表,多用于配置业务表。
### 创建数据区块
配置好的数据表可用于创建对应的数据区块,如以表格的形式展示某个数据表的内容。表格里可以选择哪些字段作为表格列显示出来。
更多关于区块的内容可以查看客户端组件章节。
### HTTP API
跨平台也可以通过 HTTP API 的方式操作数据表(增删改查配置等),更多内容查看 SDK 章节。