logologo
开始
手册
开发
插件
API
English
简体中文
开始
手册
开发
插件
API
English
简体中文
logologo
概述

数据源

数据源管理
主数据源

外部数据源(数据库)

介绍
外部 MySQL
外部 MariaDB
外部 PostgreSQL
外部 MSSQL
外部 Oracle
主、外部数据库对比
REST API 数据源
人大金仓(KingbaseES)数据源

数据表

概述
普通表
继承表
文件表
树表
日历表
评论表
表达式表
SQL 表
数据库视图

数据表字段

概述
字段验证

基本类型

单行文本
多行文本
手机号码
电子邮箱
URL
整数
数字
百分比
密码
颜色
图标

选择类型

勾选
下拉菜单(单选)
下拉菜单(多选)
单选框
复选框

多媒体

Markdown
Markdown(Vditor)
富文本
附件(关系)
附件(URL)

日期 & 时间

概述
日期时间(含时区)
日期时间(不含时区)
Unix 时间戳
日期(不含时间)
时间

几何图形

点
线
圆
多边形

高级类型

UUID
Nano ID
排序
计算公式
自动编码
JSON
数据表选择器
加密

系统信息

创建日期
最后修改日期
创建人
最后修改人
空间
Table OID

关系类型

概述
一对一
一对多
多对一
多对多
多对多(数组)

开发

概述
Previous PageNano ID
Next Page计算公式

#排序字段

该功能由插件 «数据表字段:排序» 提供

#介绍

排序字段用于对数据表中的记录进行排序,支持先分组再排序(sort1)。

WARNING

因为排序字段是同表字段,所以分组排序时,不支持同一条记录分在多个组里。

#安装

内置插件,无需单独安装。

#使用手册

#创建排序字段

20240409091123_rec_

创建排序字段时,会对排序值进行初始化:

  • 如果未选择分组排序,会依据主键字段和创建日期字段进行初始化。
  • 如果选择了分组排序,会先对数据进行分组,再依据主键字段和创建日期字段进行初始化。
事务一致性的说明
  • 创建字段时,如果排序值初始化失败,就不会创建排序字段;
  • 在某个范围内,某记录从 A 位置移动到 B 位置,AB 区间内所有记录的排序值都会变更,如果有一条失败,移动就会失败,相关记录的排序值都不会变更。 :::

#示例一:创建 sort1 字段

sort1 字段无分组

20240409091510

各记录排序字段会依据主键字段和创建日期字段进行初始化:

20240409092305

#示例二:创建一个基于 Class ID 分组的 sort2 字段

20240409092620

此时会对数据表中的全部记录先分组(按 Class ID 分组),再进行排序字段(sort2)的初始化,各记录的初始化值:

20240409092847

#拖拽排序

排序字段主要用于各种区块记录的拖拽排序,目前支持拖拽排序的区块有表格和看板。

:::warning

  • 同一个排序字段作为拖拽排序时,多区块混用可能会破坏已有排序;
  • 表格拖拽排序的字段不能选择带分组规则的排序字段;
    • 例外:一对多的关系表格区块里,外键可以作为分组;
  • 目前仅看板区块支持分组的拖拽排序。 :::

#表格行的拖拽排序

表格区块

20240409104621_rec_

关系表格区块

:::warning 一对多关系区块里

  • 如果选的是未分组的排序字段,那所有的记录都可能参与排序;
  • 如果基于外键先分组再排序,那排序规则只会影响当前分组内的数据。
最终效果是一致的,但是参与排序的记录数不一样,更多说明详见 排序规则说明

#看板卡片的拖拽排序

20240409110423_rec_

#排序规则说明

#未分组(或则同组)元素之间的位移

假设有一组数据

[1,2,3,4,5,6,7,8,9]

当某个元素,假如是 5 向前移动到 3 的位置,此时,只有 3,4,5 的序号有变动,5 占用了 3 的位置,3,4 各向后移动一个位置。

[1,2,5,3,4,6,7,8,9]

此时继续 6 向后移动到 8 的位置,6 占用了 8 的位置,7,8 各向前移动一个位置。

[1,2,5,3,4,7,8,6,9]

#不同分组之间元素的移动

分组排序时,当某一条记录移动到其他组里时,自身所在组也会发生改变。例如以下示例:

A: [1,2,3,4]
B: [5,6,7,8]

当 1 移动到 6 时(默认在后面),1 所在组也会从 A 变为 B

A: [2,3,4]
B: [5,6,1,7,8]

#排序的变更和界面显示的数据无关

例如有一组数据

[1,2,3,4,5,6,7,8,9]

界面只显示了

[1,5,9]

当 1 移动到 9 的位置时,中间的 2,3,4,5,6,7,8 数据的位置都会变更

[2,3,4,5,6,7,8,9,1]

界面显示

[5,9,1]