---
order: 8
---
# 字段角色

字段角色又称数据角色，表示一个字段的扩展属性，比如日期、经度纬度、行政区划等。设置了角色的字段，可以帮助你更准确的判断这个字段的使用方式和使用场景。

系统内置的字段角色，分为五大类：`日期`、`地理`、`文件`、`比率`、`其他`。

## 日期{#date}

日期类型用来定义字段的数据类型，而日期角色用来表示字段存储的是日期信息数据。可以对任何存储日期数据的字段设置为日期角色，这些字段的数据类型既可以是日期类型，也可以是字符型。

![销售月份](./images/2021-06-18-11-02-34.png)

示例地址：[销售月份](https://demo.succbi.com/v5/DEMO/data?:open=fcby8R17NfCga3tclsn2lB)

日期角色分为三类：

- **年：** 表示字段存储的是年份信息
- **年月：** 表示字段存储的是年月信息
- **日期（年月日）：** 表示字段存储的是年月日信息

正常情况下，如果字段的`数据类型`是`日期型`或`时间戳类型`，系统会自动设置日期角色。如果字段是`字符型`，但是数据存储的是日期数据，如`2020`、`202011`、`20201111`，则可以分别设置其字段角色为`年`、`年月`、`年月日`。

字段设置日期角色后，通过表达式访问角色的扩展属性，如`年月`角色，可以访问`月份`、`季度`、`年季`等

## 地理{#geo}

地理角色表示字段数据包含了地理信息，地理信息可以是行政区域或地理坐标。

地理角色分为五类：

- **中国行政区划：**  表示字段存储的是中国行政区划编码，该编码需在系统内置的[中国行政区划表](https://demo.succbi.com/v5/DEMO/data?:open=dbtable%40default%3Ademo4%3Acn_adcode&:tblview=modelData)定义范围内，比如：北京的行政区划编码为`110000`。如果数据编码在内置表定义之外，该条数据将无法在GIS地图中定位。
- **国家地理信息：**  表示字段存储的是世界国家编码，该编码需在系统内置的[国家地理信息表](https://demo.succbi.com/v5/DEMO/data?:open=dbtable%40default%3Ademo4%3Acountriesgeo&:tblview=modelData)定义范围内。比如：中国的编码为`China`。如果数据编码在内置表定义之外，该条数据将无法在GIS地图中定位。
- **湖北自贸区：**  表示字段存储的是湖北自贸区行政区划信息，本质是`中国行政区划`的子集，该字段数据同样需在系统内置的[中国行政区划表](https://demo.succbi.com/v5/DEMO/data?:open=dbtable%40default%3Ademo4%3Acn_adcode&:tblview=modelData)定义范围内。
- **经度：**  表示字段存储的是地理坐标中的经度
- **纬度：**  表示字段存储的是地理坐标中的纬度

![行政区划](./images/2021-06-18-11-03-25.png)

示例地址一：[销售单位行政区划](https://demo.succbi.com/v5/DEMO/data?:open=fcby8R17NfCga3tclsn2lB&:expandIds=ecOKQrFaRlSdCNrQ6oSipw)

`中国行政区划`、`国家地理信息`、`湖北自贸区`三种是区域型地理角色，主要用于标识数据的区域范围，方便基于GIS地图可视化分析时自动显示相应的底图。\ <br>

![纬度整型](./images/2020-11-13-10-14-29.png)

示例地址二：[企业经纬度](https://demo.succbi.com/v5/DEMO/data?:open=UGOACvvHdkCmkIY51oQCyE)

`经度`、`纬度`是地理坐标型角色，主要用来标识字段存储的是经纬度信息，当字段类型为数值型时可以进行设置。\
通常原始的经纬度是浮点型数据，为了提升经纬度分组统计的效率，可以将浮点型经纬度数据乘以`100000`后存储在整型字段中（如示例地址二）并设置为经纬度角色，系统将能自动识别并正确应用。

<br>

![聚合经纬度](./images/2020-11-13-11-06-35.png)

示例地址三：[便民服务网点聚合经纬度](https://demo.succbi.com/v5/DEMO/data?:open=iPJqC2IYyiIUbAnDxvHCeB)

除此外，设置经纬度角色后，还可以设置属性`经纬度精度`，经纬度精度主要用于优化散点图、热力图的渲染效率。当图中点的数量非常多且密集时，会下载过多的数据，导致加载效率慢。设置了经纬度精度后，会按照设置的精度先将范围内的点进行聚集再下载和渲染，这样在地图较小时看不出与原始数据的区别，但是加载效率会快很多。

## 文件{#file}

文件角色表示字段以某种形式存储了文件信息，通过文件角色字段，系统可以正确的识别、预览和下载文件。

![企业logo](./images/2021-09-16-17-44-09.png)

字段角色选择的是文件类型角色时会自动弹出字段存储设置对话框，如下：

![字段存储设置](./images/2021-09-16-17-45-45.png)

示例地址：[企业logo图片](https://demo.succbi.com/v5/DEMO/data?:open=UGOACvvHdkCmkIY51oQCyE)

文件角色分为三种：**图片**、**文档**、**附件**，前两者明确了文件的类型，便于理解字段的使用方式和场景，而**附件**是各种文件的一个统称。当字段只存储一种类型的文件，比如只存储了图片时，字段角色可设置为**图片**，当字段中存储了多种类型的文件或除图片、文档外的其他文件时则字段角色应设置为**附件**。

选择文件角色时，还可以在弹出的[字段存储设置]()对话框中继续设置文件的存储类型和属性，如下：

- **文件存储类型**

  文件存储类型分为四种，具体如下：

  1. **默认文件存储服务**：通用的附件存储服务，SuccBI自动管理附件在系统中的存储与读取，使用者无需关心，字段中记录的是文件在系统内部的ID值。通常用于业务应用系统中上传附件到系统中存储和使用，比如个人中心上传个人图像。
  2. **默认文件存储服务(去重)**：与默认文件存储服务基本相同，唯一区别是上传的相同文件在存储时会自动忽略只保存一次并在字段中记录同一个文件ID值。通常在海量附件存储场景时，可以节省文件的存储空间开销，比如在核酸检测人员采样中同一个家庭的人可以使用同一个身份证登记，上传相同身份证图片时系统只存储一份。
  3. **工作目录路径**：字段存储的是相对于[工作目录](../../devops/install/basic-install/workdir-and-defdb.md#dir)下的`clusters-share`目录的路径。通常用于将本地已存在的附件或批量附件读取到系统中使用，比如本地已经有整理好的所有企业图标附件，将附件存放在工作目录的`clusters-share`目录下后，可以在[企业基本信息表](https://demo.succbi.com/v5/DEMO/data?:open=UGOACvvHdkCmkIY51oQCyE)中的【企业图标】字段中存储图标的工作目录路径为`dw-attachments/DEMO/picture/companies-logo/武汉奇普微半导体有限公司.png`。
  4. **外部链接**：文件来自于互联网，如`http://www.succsoft.com/path/to/image1.png`，通过web接口应当可以获取到文件。当文件很大时，比如100M+，多个用户同时访问或下载时会大量占用系统的网络带宽从而导致系统整体的网络响应故障，解决这个问题的方案通常是将大文件使用第三方的互联网存储服务通过外部链接访问。比如，一个软件产品的社区网站通常也会发布视频课程，而这些视频课程的视频文件通常并不是存储在自身网站系统内，而是存储在第三方的视频服务网站，比如哔哩哔哩、腾讯视频、萤石云等，播放视频课程时实际上是通过外部链接跳转到对应第三方服务网站上播放的。

- **存储多个**

  字段是否存储多个数据项，详细介绍请参考[字段存储设置](./README.md#field-storage-settings)。

- **存储附件属性**

  当**文件存储类型**不是**外部链接**时可以设置文件的属性，具体如下：

  - **文件名字段：** 指定一个字段存储文件的文件名信息，可用于下载附件时设置下载文件的名称。
  - **文件大小字段：** 指定一个字段存储文件的文件大小信息。
  - **文件修改时间字段：** 指定一个字段存储文件的文件修改时间信息。

  设置后，上传附件时系统会自动将当前上传文件的名称、大小、修改时间信息记录在设置的字段中。

## 比率{#rate}

比率角色主要用来标识字段存储的是比率数据，数值型字段可以设置该角色。

比率角色字段，比如毛利率，在分析应用中能自动显示为百分比格式。

## 其他{#others}

### HTML{#html}

HTML角色表示字段内容是HTML，在应用中被显示时可以当做HTML来渲染。

例如，文章详情、产品介绍、个人简历等可以存储HTML信息在字段中并设置为HTML角色。
