> ## Documentation Index
> Fetch the complete documentation index at: https://help.dingtalk.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Database Table Schema Dictionary

> Configuration guide for the YiDA platform's dedicated database, including the detailed schema and field definitions of the odin_open_application_data table. This table stores form instance data and supports business growth and technical iteration.

> V1.0 Update time 2024.11

When you configure a dedicated database for dedicated storage, the YiDA platform adds several required tables to it to store the data generated as you use YiDA. The schema of these tables is not fixed — it evolves with business growth and technical iteration, and new fields or tables may be added over time. In general, existing fields will remain unchanged to avoid disrupting your business operations, but the YiDA platform still recommends that you do not build strong dependencies on this data.

## Table List

### **Odin\_Open\_Application\_Data**

**Table name**: odin\_open\_application\_data

**Description**: form instance data table (shared by form and report).

**Character set**: UTF8

<table>
  <tr>
    <td>**Column name**</td>
    <td>**Type**</td>
    <td>**Length**</td>
    <td>**Precision**</td>
    <td>**Scale**</td>
    <td>**Nullable**</td>
    <td>**Default value**</td>
    <td>**Description**</td>
  </tr>

  <tr>
    <td>**id**</td>
    <td>varchar</td>
    <td>128</td>

    <td />

    <td />

    <td>Y</td>

    <td />

    <td>Unique id; may be empty for historical data — uniqueness is still determined by pid</td>
  </tr>

  <tr>
    <td>**gmt\_create**</td>
    <td>timestamp</td>

    <td />

    <td />

    <td />

    <td>N</td>

    <td />

    <td>Created time</td>
  </tr>

  <tr>
    <td>**gmt\_modified**</td>
    <td>timestamp</td>

    <td />

    <td />

    <td />

    <td>N</td>

    <td />

    <td>Modified time</td>
  </tr>

  <tr>
    <td>**creator**</td>
    <td>varchar</td>
    <td>64</td>

    <td />

    <td />

    <td>Y</td>

    <td />

    <td>Created by</td>
  </tr>

  <tr>
    <td>**modifier**</td>
    <td>varchar</td>
    <td>64</td>

    <td />

    <td />

    <td>Y</td>

    <td />

    <td>Last modified by</td>
  </tr>

  <tr>
    <td>**is\_deleted**</td>
    <td>bpchar</td>
    <td>1</td>

    <td />

    <td />

    <td>N</td>
    <td>n</td>
    <td>Whether deleted</td>
  </tr>

  <tr>
    <td>**corp\_id**</td>
    <td>varchar</td>
    <td>128</td>

    <td />

    <td />

    <td>Y</td>

    <td />

    <td>Organization id where the instance is inserted</td>
  </tr>

  <tr>
    <td>**namespace\_code**</td>
    <td>varchar</td>
    <td>128</td>

    <td />

    <td />

    <td>N</td>

    <td />

    <td>App appType</td>
  </tr>

  <tr>
    <td>**table\_name**</td>
    <td>varchar</td>
    <td>128</td>

    <td />

    <td />

    <td>N</td>

    <td />

    <td>Form model id</td>
  </tr>

  <tr>
    <td>**pid**</td>
    <td>varchar</td>
    <td>64</td>

    <td />

    <td />

    <td>N</td>

    <td />

    <td>Instance id</td>
  </tr>

  <tr>
    <td>**parent\_pid**</td>
    <td>varchar</td>
    <td>64</td>

    <td />

    <td />

    <td>Y</td>

    <td />

    <td>Used in cases such as sub-table association, where the sub-table data is linked to the parent table's pid through this field</td>
  </tr>

  <tr>
    <td>**json\_data**</td>
    <td>jsonb</td>

    <td />

    <td />

    <td />

    <td>Y</td>

    <td />

    <td>Specific component data, in json</td>
  </tr>

  <tr>
    <td>**data\_version**</td>
    <td>int8</td>

    <td />

    <td />

    <td />

    <td>N</td>
    <td>0</td>
    <td>Data change version</td>
  </tr>

  <tr>
    <td>**data\_order**</td>
    <td>int8</td>

    <td />

    <td />

    <td />

    <td>N</td>
    <td>0</td>
    <td>Data display order, typically used for sub-tables</td>
  </tr>

  <tr>
    <td>**Index name**</td>
    <td>Type</td>
    <td colSpan={6}>Included Fields</td>
  </tr>

  <tr>
    <td>**odin\_open\_application\_data\_gmt\_modified\_idx1**</td>
    <td>Normal</td>
    <td colSpan={6}>gmt\_modified</td>
  </tr>

  <tr>
    <td>**odin\_open\_application\_data\_namespace\_code\_creator\_idx1**</td>
    <td>Normal</td>
    <td colSpan={6}>namespace\_code,creator</td>
  </tr>

  <tr>
    <td>**odin\_open\_application\_data\_namespace\_code\_table\_name\_gmt\_c\_idx1**</td>
    <td>Normal</td>
    <td colSpan={6}>namespace\_code,table\_name,gmt\_create</td>
  </tr>

  <tr>
    <td>**odin\_open\_application\_data\_namespace\_code\_table\_name\_paren\_idx1**</td>
    <td>Normal</td>
    <td colSpan={6}>namespace\_code,table\_name,parent\_pid,is\_deleted</td>
  </tr>

  <tr>
    <td>**odin\_open\_application\_data\_namespace\_code\_table\_name\_pid\_idx1**</td>
    <td>Unique</td>
    <td colSpan={6}>namespace\_code,table\_name,pid</td>
  </tr>

  <tr>
    <td>**odin\_open\_application\_data\_pid\_idx1**</td>
    <td>Normal</td>
    <td colSpan={6}>pid</td>
  </tr>
</table>

### Tianshu\_Form\_Data\_Operation\_Log

**Table name**: tianshu\_form\_data\_operation\_log

**Description**: Form data activity log table.

**Character set**: utf8mb4

<table>
  <tr>
    <td>**Column name**</td>
    <td>**Type**</td>
    <td>**Length**</td>
    <td>**Precision**</td>
    <td>**Scale**</td>
    <td>**Nullable**</td>
    <td>**Default value**</td>
    <td>**Description**</td>
  </tr>

  <tr>
    <td>**id**</td>
    <td>bigint(20) unsigned</td>

    <td />

    <td>20</td>
    <td>0</td>
    <td>N</td>
    <td>Generated via tianshu\_form\_data\_operation\_log\_id\_seq</td>
    <td>Primary key</td>
  </tr>

  <tr>
    <td>**gmt\_create**</td>
    <td>datetime</td>

    <td />

    <td />

    <td />

    <td>N</td>

    <td />

    <td>Created time</td>
  </tr>

  <tr>
    <td>**gmt\_modified**</td>
    <td>datetime</td>

    <td />

    <td />

    <td />

    <td>N</td>

    <td />

    <td>Modified time</td>
  </tr>

  <tr>
    <td>**creator**</td>
    <td>varchar(64)</td>
    <td>64</td>

    <td />

    <td />

    <td>N</td>

    <td />

    <td>Created by</td>
  </tr>

  <tr>
    <td>**modifier**</td>
    <td>varchar(64)</td>
    <td>64</td>

    <td />

    <td />

    <td>N</td>

    <td />

    <td>Last modified by</td>
  </tr>

  <tr>
    <td>**is\_deleted**</td>
    <td>char(1)</td>
    <td>1</td>

    <td />

    <td />

    <td>N</td>

    <td />

    <td>Whether logically deleted</td>
  </tr>

  <tr>
    <td>**system\_type**</td>
    <td>varchar(64)</td>
    <td>64</td>

    <td />

    <td />

    <td>N</td>

    <td />

    <td>System type</td>
  </tr>

  <tr>
    <td>**app\_type**</td>
    <td>varchar(64)</td>
    <td>64</td>

    <td />

    <td />

    <td>N</td>

    <td />

    <td>App key</td>
  </tr>

  <tr>
    <td>**form\_inst\_id**</td>
    <td>varchar(128)</td>
    <td>128</td>

    <td />

    <td />

    <td>N</td>

    <td />

    <td>form instance data id</td>
  </tr>

  <tr>
    <td>**operation\_type**</td>
    <td>varchar(64)</td>
    <td>64</td>

    <td />

    <td />

    <td>N</td>

    <td />

    <td>Action type</td>
  </tr>

  <tr>
    <td>**operation\_field**</td>
    <td>varchar(64)</td>
    <td>64</td>

    <td />

    <td />

    <td>N</td>

    <td />

    <td>Action field</td>
  </tr>

  <tr>
    <td>**pre\_value**</td>
    <td>mediumtext</td>
    <td>16777215</td>

    <td />

    <td />

    <td>Y</td>

    <td />

    <td>Original content</td>
  </tr>

  <tr>
    <td>**value**</td>
    <td>mediumtext</td>
    <td>16777215</td>

    <td />

    <td />

    <td>Y</td>

    <td />

    <td>Modified content</td>
  </tr>

  <tr>
    <td>**shard\_key**</td>
    <td>varchar(130)</td>
    <td>130</td>

    <td />

    <td />

    <td>N</td>

    <td />

    <td>Sharding key</td>
  </tr>

  <tr>
    <td>**pre\_code**</td>
    <td>mediumtext</td>
    <td>16777215</td>

    <td />

    <td />

    <td>Y</td>

    <td />

    <td>Code corresponding to the original control value</td>
  </tr>

  <tr>
    <td>**code**</td>
    <td>mediumtext</td>
    <td>16777215</td>

    <td />

    <td />

    <td>Y</td>

    <td />

    <td>Code corresponding to the control</td>
  </tr>

  <tr>
    <td>**operation\_id**</td>
    <td>varchar(64)</td>
    <td>64</td>

    <td />

    <td />

    <td>Y</td>

    <td />

    <td>Unique action ID</td>
  </tr>

  <tr>
    <td>**parent\_operation\_field**</td>
    <td>varchar(64)</td>
    <td>64</td>

    <td />

    <td />

    <td>N</td>
    <td>ROOT</td>
    <td>Parent action field</td>
  </tr>

  <tr>
    <td>**parent\_operation\_id**</td>
    <td>varchar(64)</td>
    <td>64</td>

    <td />

    <td />

    <td>N</td>
    <td>ROOT</td>
    <td>Parent action id</td>
  </tr>

  <tr>
    <td>**trigger\_src**</td>
    <td>varchar(4000)</td>
    <td>4000</td>

    <td />

    <td />

    <td>Y</td>

    <td />

    <td>Trigger source description</td>
  </tr>

  <tr>
    <td>**trigger\_type**</td>
    <td>varchar(4)</td>
    <td>4</td>

    <td />

    <td />

    <td>Y</td>

    <td />

    <td>Trigger source type</td>
  </tr>

  <tr>
    <td>**Index name**</td>
    <td>Type</td>
    <td colSpan={6}>Included Fields</td>
  </tr>

  <tr>
    <td>**idx\_app\_type**</td>
    <td>Normal</td>
    <td colSpan={6}>app\_type</td>
  </tr>

  <tr>
    <td>**idx\_inst\_id\_parent\_operation\_field\_gmt\_modified**</td>
    <td>Normal</td>
    <td colSpan={6}>form\_inst\_id,parent\_operation\_field,gmt\_modified</td>
  </tr>

  <tr>
    <td>**idx\_inst\_id\_parent\_operation\_field\_parent\_operation\_id**</td>
    <td>Normal</td>
    <td colSpan={6}>form\_inst\_id,parent\_operation\_field,parent\_operation\_id</td>
  </tr>

  <tr>
    <td>**idx\_operation\_id**</td>
    <td>Normal</td>
    <td colSpan={6}>operation\_id</td>
  </tr>

  <tr>
    <td>**idx\_operation\_id\_is\_deleted**</td>
    <td>Normal</td>
    <td colSpan={6}>operation\_id,is\_deleted</td>
  </tr>

  <tr>
    <td>**idx\_opertaion\_field\_gmt\_modified**</td>
    <td>Normal</td>
    <td colSpan={6}>operation\_field,gmt\_modified</td>
  </tr>

  <tr>
    <td>**idx\_parentoperationid\_parentoperationfield**</td>
    <td>Normal</td>
    <td colSpan={6}>parent\_operation\_id,parent\_operation\_field</td>
  </tr>

  <tr>
    <td>**PRIMARY**</td>
    <td>Primary</td>
    <td colSpan={6}>id</td>
  </tr>

  <tr>
    <td>**uk\_inst\_id\_id**</td>
    <td>Unique</td>
    <td colSpan={6}>form\_inst\_id,id</td>
  </tr>
</table>

### **Tianshu\_Proc\_Inst\_Carbon**

Table name: tianshu\_proc\_inst\_carbon

Description: workflow instance CC recipient table

Character set: utf8mb4

<table>
  <tr>
    <td>**Column name**</td>
    <td>**Type**</td>
    <td>**Length**</td>
    <td>**Precision**</td>
    <td>**Scale**</td>
    <td>**Nullable**</td>
    <td>**Default value**</td>
    <td>**Description**</td>
  </tr>

  <tr>
    <td>**id**</td>
    <td>bigint(20)</td>

    <td />

    <td>19</td>
    <td>0</td>
    <td>N</td>
    <td>Generated via proc\_inst\_carbon\_id\_seq</td>
    <td>Primary key</td>
  </tr>

  <tr>
    <td>**gmt\_create**</td>
    <td>datetime</td>

    <td />

    <td />

    <td />

    <td>N</td>

    <td />

    <td>Created time</td>
  </tr>

  <tr>
    <td>**gmt\_modified**</td>
    <td>datetime</td>

    <td />

    <td />

    <td />

    <td>N</td>

    <td />

    <td>Modified time</td>
  </tr>

  <tr>
    <td>**shard\_key**</td>
    <td>varchar(130)</td>
    <td>130</td>

    <td />

    <td />

    <td>N</td>

    <td />

    <td>Sharding field</td>
  </tr>

  <tr>
    <td>**system\_type**</td>
    <td>varchar(64)</td>
    <td>64</td>

    <td />

    <td />

    <td>N</td>

    <td />

    <td>System category</td>
  </tr>

  <tr>
    <td>**app\_type**</td>
    <td>varchar(64)</td>
    <td>64</td>

    <td />

    <td />

    <td>N</td>

    <td />

    <td>App type</td>
  </tr>

  <tr>
    <td>**form\_uuid**</td>
    <td>varchar(128)</td>
    <td>128</td>

    <td />

    <td />

    <td>N</td>

    <td />

    <td>Form UUID</td>
  </tr>

  <tr>
    <td>**is\_deleted**</td>
    <td>char(1)</td>
    <td>1</td>

    <td />

    <td />

    <td>N</td>

    <td />

    <td>Delete flag</td>
  </tr>

  <tr>
    <td>**form\_inst\_id**</td>
    <td>varchar(128)</td>
    <td>128</td>

    <td />

    <td />

    <td>N</td>

    <td />

    <td>Instance ID</td>
  </tr>

  <tr>
    <td>**form\_inst\_title**</td>
    <td>varchar(1024)</td>
    <td>1024</td>

    <td />

    <td />

    <td>N</td>

    <td />

    <td>Instance title</td>
  </tr>

  <tr>
    <td>**carbon**</td>
    <td>varchar(64)</td>
    <td>64</td>

    <td />

    <td />

    <td>N</td>

    <td />

    <td>CC recipient</td>
  </tr>

  <tr>
    <td>**activity\_id**</td>
    <td>varchar(128)</td>
    <td>128</td>

    <td />

    <td />

    <td>N</td>

    <td />

    <td>CC node ID</td>
  </tr>

  <tr>
    <td>**process\_code**</td>
    <td>varchar(128)</td>
    <td>128</td>

    <td />

    <td />

    <td>N</td>

    <td />

    <td>Workflow code</td>
  </tr>

  <tr>
    <td>**inst\_status**</td>
    <td>varchar(32)</td>
    <td>32</td>

    <td />

    <td />

    <td>N</td>

    <td />

    <td>Instance status</td>
  </tr>

  <tr>
    <td>**is\_printed**</td>
    <td>char(1)</td>
    <td>1</td>

    <td />

    <td />

    <td>Y</td>

    <td />

    <td>Whether printed</td>
  </tr>

  <tr>
    <td>**inst\_originator**</td>
    <td>varchar(64)</td>
    <td>64</td>

    <td />

    <td />

    <td>Y</td>

    <td />

    <td>Instance initiator</td>
  </tr>

  <tr>
    <td>**Index name**</td>
    <td>Type</td>
    <td colSpan={6}>Included Fields</td>
  </tr>

  <tr>
    <td>**idx\_carbon**</td>
    <td>Normal</td>
    <td colSpan={6}>carbon</td>
  </tr>

  <tr>
    <td>**idx\_carbon\_app**</td>
    <td>Normal</td>
    <td colSpan={6}>carbon,shard\_key,is\_deleted</td>
  </tr>

  <tr>
    <td>**idx\_form\_inst\_id**</td>
    <td>Normal</td>
    <td colSpan={6}>form\_inst\_id</td>
  </tr>

  <tr>
    <td>**idx\_form\_uuid\_carbon**</td>
    <td>Normal</td>
    <td colSpan={6}>form\_uuid40,carbon20,is\_deleted</td>
  </tr>

  <tr>
    <td>**idx\_inst\_originator**</td>
    <td>Normal</td>
    <td colSpan={6}>inst\_originator</td>
  </tr>

  <tr>
    <td>**idx\_shard\_key**</td>
    <td>Normal</td>
    <td colSpan={6}>shard\_key</td>
  </tr>

  <tr>
    <td>**PRIMARY**</td>
    <td>Primary</td>
    <td colSpan={6}>id</td>
  </tr>
</table>

### Tianshu\_Data\_Form\_Version

**Table name**: tianshu\_data\_form\_version

**Description**: Association table between instance data and form version

**Character set**: utf8mb4

<table>
  <tr>
    <td>**Column name**</td>
    <td>**Type**</td>
    <td>**Length**</td>
    <td>**Precision**</td>
    <td>**Scale**</td>
    <td>**Nullable**</td>
    <td>**Default value**</td>
    <td>**Description**</td>
  </tr>

  <tr>
    <td>**id**</td>
    <td>bigint(20) unsigned</td>

    <td />

    <td>20</td>
    <td>0</td>
    <td>N</td>
    <td>Generated via data\_form\_version\_id\_seq</td>
    <td>Primary key</td>
  </tr>

  <tr>
    <td>**gmt\_create**</td>
    <td>datetime</td>

    <td />

    <td />

    <td />

    <td>N</td>

    <td />

    <td>Created time</td>
  </tr>

  <tr>
    <td>**gmt\_modified**</td>
    <td>datetime</td>

    <td />

    <td />

    <td />

    <td>N</td>

    <td />

    <td>Modified time</td>
  </tr>

  <tr>
    <td>**creator**</td>
    <td>varchar(64)</td>
    <td>64</td>

    <td />

    <td />

    <td>N</td>

    <td />

    <td>Created by</td>
  </tr>

  <tr>
    <td>**modifier**</td>
    <td>varchar(64)</td>
    <td>64</td>

    <td />

    <td />

    <td>N</td>

    <td />

    <td>Last modified by</td>
  </tr>

  <tr>
    <td>**form\_uuid**</td>
    <td>varchar(128)</td>
    <td>128</td>

    <td />

    <td />

    <td>N</td>

    <td />

    <td>Form id</td>
  </tr>

  <tr>
    <td>**model\_uuid**</td>
    <td>varchar(128)</td>
    <td>128</td>

    <td />

    <td />

    <td>N</td>

    <td />

    <td>Model id</td>
  </tr>

  <tr>
    <td>**inst\_id**</td>
    <td>varchar(128)</td>
    <td>128</td>

    <td />

    <td />

    <td>N</td>

    <td />

    <td>Instance id</td>
  </tr>

  <tr>
    <td>**version**</td>
    <td>bigint(20)</td>

    <td />

    <td>19</td>
    <td>0</td>
    <td>N</td>

    <td />

    <td>Form version</td>
  </tr>

  <tr>
    <td>**system\_type**</td>
    <td>varchar(64)</td>
    <td>64</td>

    <td />

    <td />

    <td>N</td>

    <td />

    <td>System version</td>
  </tr>

  <tr>
    <td>**app\_type**</td>
    <td>varchar(64)</td>
    <td>64</td>

    <td />

    <td />

    <td>N</td>

    <td />

    <td>App ID</td>
  </tr>

  <tr>
    <td>**shard\_key**</td>
    <td>varchar(130)</td>
    <td>130</td>

    <td />

    <td />

    <td>N</td>

    <td />

    <td>Sharding key</td>
  </tr>

  <tr>
    <td>**Index name**</td>
    <td>Type</td>
    <td colSpan={6}>Included Fields</td>
  </tr>

  <tr>
    <td>**idx\_form\_uuid**</td>
    <td>Normal</td>
    <td colSpan={6}>form\_uuid</td>
  </tr>

  <tr>
    <td>**idx\_inst\_id**</td>
    <td>Normal</td>
    <td colSpan={6}>inst\_id</td>
  </tr>

  <tr>
    <td>**idx\_model\_uuid**</td>
    <td>Normal</td>
    <td colSpan={6}>model\_uuid</td>
  </tr>

  <tr>
    <td>**idx\_shard\_key**</td>
    <td>Normal</td>
    <td colSpan={6}>shard\_key</td>
  </tr>

  <tr>
    <td>**PRIMARY**</td>
    <td>Primary</td>
    <td colSpan={6}>id</td>
  </tr>
</table>

### **Tianshu\_Form\_Data\_Stash**

Table name: tianshu\_form\_data\_stash

Description: Form cache table

Character set: utf8mb4

<table>
  <tr>
    <td>**Column name**</td>
    <td>**Type**</td>
    <td>**Length**</td>
    <td>**Precision**</td>
    <td>**Scale**</td>
    <td>**Nullable**</td>
    <td>**Default value**</td>
    <td>**Description**</td>
  </tr>

  <tr>
    <td>**id**</td>
    <td>bigint(20) unsigned</td>

    <td />

    <td>20</td>
    <td>0</td>
    <td>N</td>
    <td>Generated via form\_data\_stash\_id\_seq</td>
    <td>Primary key</td>
  </tr>

  <tr>
    <td>**gmt\_create**</td>
    <td>datetime</td>

    <td />

    <td />

    <td />

    <td>N</td>

    <td />

    <td>Created time</td>
  </tr>

  <tr>
    <td>**gmt\_modified**</td>
    <td>datetime</td>

    <td />

    <td />

    <td />

    <td>N</td>

    <td />

    <td>Modified time</td>
  </tr>

  <tr>
    <td>**shard\_key**</td>
    <td>varchar(130)</td>
    <td>130</td>

    <td />

    <td />

    <td>N</td>

    <td />

    <td>Sharding key</td>
  </tr>

  <tr>
    <td>**is\_deleted**</td>
    <td>char(1)</td>
    <td>1</td>

    <td />

    <td />

    <td>N</td>

    <td />

    <td>Delete flag</td>
  </tr>

  <tr>
    <td>**system\_type**</td>
    <td>varchar(64)</td>
    <td>64</td>

    <td />

    <td />

    <td>N</td>

    <td />

    <td>System identifier</td>
  </tr>

  <tr>
    <td>**app\_type**</td>
    <td>varchar(64)</td>
    <td>64</td>

    <td />

    <td />

    <td>N</td>

    <td />

    <td>App identifier</td>
  </tr>

  <tr>
    <td>**form\_uuid**</td>
    <td>varchar(64)</td>
    <td>64</td>

    <td />

    <td />

    <td>N</td>

    <td />

    <td>Form UUID</td>
  </tr>

  <tr>
    <td>**inst\_value**</td>
    <td>mediumtext</td>
    <td>16777215</td>

    <td />

    <td />

    <td>Y</td>

    <td />

    <td>Form content</td>
  </tr>

  <tr>
    <td>**creator**</td>
    <td>varchar(64)</td>
    <td>64</td>

    <td />

    <td />

    <td>N</td>

    <td />

    <td>Created by</td>
  </tr>

  <tr>
    <td>**modifier**</td>
    <td>varchar(64)</td>
    <td>64</td>

    <td />

    <td />

    <td>N</td>

    <td />

    <td>Last modified by</td>
  </tr>

  <tr>
    <td>**Index name**</td>
    <td>Type</td>
    <td colSpan={6}>Included Fields</td>
  </tr>

  <tr>
    <td>**idx\_form\_creator**</td>
    <td>Normal</td>
    <td colSpan={6}>shard\_key90,form\_uuid,creator</td>
  </tr>

  <tr>
    <td>**PRIMARY**</td>
    <td>Primary</td>
    <td colSpan={6}>id</td>
  </tr>
</table>

### **Tianshu\_Form\_Remark**

Table name: tianshu\_form\_remark

Description: Comments feature

Character set: utf8mb4

<table>
  <tr>
    <td>**Column name**</td>
    <td>**Type**</td>
    <td>**Length**</td>
    <td>**Precision**</td>
    <td>**Scale**</td>
    <td>**Nullable**</td>
    <td>**Default value**</td>
    <td>**Description**</td>
  </tr>

  <tr>
    <td>**id**</td>
    <td>bigint(20) unsigned</td>

    <td />

    <td>20</td>
    <td>0</td>
    <td>N</td>
    <td>Generated via form\_remark\_id\_seq</td>
    <td>Primary key</td>
  </tr>

  <tr>
    <td>**gmt\_create**</td>
    <td>datetime</td>

    <td />

    <td />

    <td />

    <td>N</td>

    <td />

    <td>Created time</td>
  </tr>

  <tr>
    <td>**gmt\_modified**</td>
    <td>datetime</td>

    <td />

    <td />

    <td />

    <td>N</td>

    <td />

    <td>Modified time</td>
  </tr>

  <tr>
    <td>**creator**</td>
    <td>varchar(64)</td>
    <td>64</td>

    <td />

    <td />

    <td>N</td>

    <td />

    <td>Created by</td>
  </tr>

  <tr>
    <td>**modifier**</td>
    <td>varchar(64)</td>
    <td>64</td>

    <td />

    <td />

    <td>N</td>

    <td />

    <td>Last modified by</td>
  </tr>

  <tr>
    <td>**form\_inst\_id**</td>
    <td>varchar(128)</td>
    <td>128</td>

    <td />

    <td />

    <td>N</td>

    <td />

    <td>Instance ID</td>
  </tr>

  <tr>
    <td>**reply\_id**</td>
    <td>bigint(20) unsigned</td>

    <td />

    <td>20</td>
    <td>0</td>
    <td>Y</td>

    <td />

    <td>Association ID</td>
  </tr>

  <tr>
    <td>**content**</td>
    <td>text</td>
    <td>65535</td>

    <td />

    <td />

    <td>N</td>

    <td />

    <td>Content</td>
  </tr>

  <tr>
    <td>**files**</td>
    <td>varchar(3000)</td>
    <td>3000</td>

    <td />

    <td />

    <td>Y</td>

    <td />

    <td>Attachment</td>
  </tr>

  <tr>
    <td>**reply\_user\_id**</td>
    <td>varchar(64)</td>
    <td>64</td>

    <td />

    <td />

    <td>Y</td>

    <td />

    <td>Reply user ID</td>
  </tr>

  <tr>
    <td>**at\_user\_id**</td>
    <td>varchar(640)</td>
    <td>640</td>

    <td />

    <td />

    <td>Y</td>

    <td />

    <td>Mentioned user ID</td>
  </tr>

  <tr>
    <td>**is\_deleted**</td>
    <td>char(1)</td>
    <td>1</td>

    <td />

    <td />

    <td>N</td>
    <td>n</td>
    <td>Delete flag</td>
  </tr>

  <tr>
    <td>**system\_type**</td>
    <td>varchar(64)</td>
    <td>64</td>

    <td />

    <td />

    <td>N</td>

    <td />

    <td>System type</td>
  </tr>

  <tr>
    <td>**app\_type**</td>
    <td>varchar(64)</td>
    <td>64</td>

    <td />

    <td />

    <td>N</td>

    <td />

    <td>App type</td>
  </tr>

  <tr>
    <td>**shard\_key**</td>
    <td>varchar(130)</td>
    <td>130</td>

    <td />

    <td />

    <td>N</td>

    <td />

    <td>Sharding key</td>
  </tr>

  <tr>
    <td>**images**</td>
    <td>text</td>
    <td>65535</td>

    <td />

    <td />

    <td>Y</td>

    <td />

    <td>Image</td>
  </tr>

  <tr>
    <td>**Index name**</td>
    <td>Type</td>
    <td colSpan={6}>Included Fields</td>
  </tr>

  <tr>
    <td>**idx\_form\_inst\_id**</td>
    <td>Normal</td>
    <td colSpan={6}>form\_inst\_id</td>
  </tr>

  <tr>
    <td>**PRIMARY**</td>
    <td>Primary</td>
    <td colSpan={6}>id</td>
  </tr>
</table>

### **Alibpms\_App\_Cm\_Operator\_Record**

**Table name**: alibpms\_app\_cm\_operator\_record

**Description**: workflow instance approval record table

**Character set**: utf8mb4

**Notes**: Does not include approval tasks that are currently in progress.

<table>
  <tr>
    <td>**Column name**</td>
    <td>**Type**</td>
    <td>**Length**</td>
    <td>**Precision**</td>
    <td>**Scale**</td>
    <td>**Nullable**</td>
    <td>**Default value**</td>
    <td>**Description**</td>
  </tr>

  <tr>
    <td>**id**</td>
    <td>bigint(20)</td>

    <td />

    <td>19</td>
    <td>0</td>
    <td>N</td>
    <td>Generated via pro\_operator\_record\_id\_seq</td>
    <td>Primary key id</td>
  </tr>

  <tr>
    <td>**operator**</td>
    <td>varchar(64)</td>
    <td>64</td>

    <td />

    <td />

    <td>Y</td>

    <td />

    <td>Actual operator id</td>
  </tr>

  <tr>
    <td>**operate\_time**</td>
    <td>datetime(3)</td>

    <td />

    <td />

    <td />

    <td>Y</td>

    <td />

    <td>Modified time</td>
  </tr>

  <tr>
    <td>**action**</td>
    <td>varchar(256)</td>
    <td>256</td>

    <td />

    <td />

    <td>Y</td>

    <td />

    <td>Action description</td>
  </tr>

  <tr>
    <td>**remark**</td>
    <td>text</td>
    <td>65535</td>

    <td />

    <td />

    <td>Y</td>

    <td />

    <td>Action alias</td>
  </tr>

  <tr>
    <td>**process\_instance\_id**</td>
    <td>varchar(64)</td>
    <td>64</td>

    <td />

    <td />

    <td>Y</td>

    <td />

    <td>workflow instance ID</td>
  </tr>

  <tr>
    <td>**activity\_setting\_id**</td>
    <td>varchar(64)</td>
    <td>64</td>

    <td />

    <td />

    <td>Y</td>

    <td />

    <td>Node definition ID</td>
  </tr>

  <tr>
    <td>**task\_id**</td>
    <td>varchar(64)</td>
    <td>64</td>

    <td />

    <td />

    <td>Y</td>

    <td />

    <td>Task ID</td>
  </tr>

  <tr>
    <td>**step**</td>
    <td>varchar(256)</td>
    <td>256</td>

    <td />

    <td />

    <td>Y</td>

    <td />

    <td>Action step</td>
  </tr>

  <tr>
    <td>**visible**</td>
    <td>varchar(128)</td>
    <td>128</td>

    <td />

    <td />

    <td>Y</td>

    <td />

    <td>Whether visible (true = visible, false = hidden)</td>
  </tr>

  <tr>
    <td>**app\_key**</td>
    <td>varchar(128)</td>
    <td>128</td>

    <td />

    <td />

    <td>Y</td>

    <td />

    <td>App key</td>
  </tr>

  <tr>
    <td>**activity\_id**</td>
    <td>varchar(64)</td>
    <td>64</td>

    <td />

    <td />

    <td>Y</td>

    <td />

    <td>Node ID</td>
  </tr>

  <tr>
    <td>**original\_operator**</td>
    <td>varchar(64)</td>
    <td>64</td>

    <td />

    <td />

    <td>Y</td>

    <td />

    <td>Original operator</td>
  </tr>

  <tr>
    <td>**agent\_operator**</td>
    <td>varchar(64)</td>
    <td>64</td>

    <td />

    <td />

    <td>Y</td>

    <td />

    <td>Delegated operator</td>
  </tr>

  <tr>
    <td>**operate\_type**</td>
    <td>varchar(32)</td>
    <td>32</td>

    <td />

    <td />

    <td>Y</td>

    <td />

    <td>Action type</td>
  </tr>

  <tr>
    <td>**group\_id**</td>
    <td>bigint(20)</td>

    <td />

    <td>19</td>
    <td>0</td>
    <td>N</td>
    <td>1</td>
    <td>Integrator isolation</td>
  </tr>

  <tr>
    <td>**from\_mobile**</td>
    <td>char(1)</td>
    <td>1</td>

    <td />

    <td />

    <td>N</td>
    <td>n</td>
    <td>Flag indicating whether submitted from mobile approval</td>
  </tr>

  <tr>
    <td>**files**</td>
    <td>longtext</td>
    <td>4294967295</td>

    <td />

    <td />

    <td>Y</td>

    <td />

    <td>Flag file field</td>
  </tr>

  <tr>
    <td>**user\_job**</td>
    <td>varchar(70)</td>
    <td>70</td>

    <td />

    <td />

    <td>Y</td>

    <td />

    <td>User job title flag</td>
  </tr>

  <tr>
    <td>**is\_deleted**</td>
    <td>char(1)</td>
    <td>1</td>

    <td />

    <td />

    <td>N</td>
    <td>n</td>
    <td>Delete flag</td>
  </tr>

  <tr>
    <td>**gmt\_modified**</td>
    <td>datetime</td>

    <td />

    <td />

    <td />

    <td>Y</td>

    <td />

    <td>Modified time</td>
  </tr>

  <tr>
    <td>**modifier**</td>
    <td>varchar(64)</td>
    <td>64</td>

    <td />

    <td />

    <td>Y</td>

    <td />

    <td>Last modified by</td>
  </tr>

  <tr>
    <td>**step\_en**</td>
    <td>varchar(256)</td>
    <td>256</td>

    <td />

    <td />

    <td>Y</td>

    <td />

    <td>Action step in English</td>
  </tr>

  <tr>
    <td>**notice**</td>
    <td>text</td>
    <td>65535</td>

    <td />

    <td />

    <td>Y</td>

    <td />

    <td>Approval responsibility in Chinese and English</td>
  </tr>

  <tr>
    <td>**reason**</td>
    <td>text</td>
    <td>65535</td>

    <td />

    <td />

    <td>Y</td>

    <td />

    <td>Approval reason in Chinese and English</td>
  </tr>

  <tr>
    <td>**digital\_sign**</td>
    <td>varchar(512)</td>
    <td>512</td>

    <td />

    <td />

    <td>Y</td>

    <td />

    <td>Electronic signature image</td>
  </tr>

  <tr>
    <td>**target\_users**</td>
    <td>text</td>
    <td>65535</td>

    <td />

    <td />

    <td>Y</td>

    <td />

    <td>Target users; separate multiple users with commas</td>
  </tr>

  <tr>
    <td>**Index name**</td>
    <td>Type</td>
    <td colSpan={6}>Included Fields</td>
  </tr>

  <tr>
    <td>**idx\_activity\_id**</td>
    <td>Normal</td>
    <td colSpan={6}>app\_key,activity\_id</td>
  </tr>

  <tr>
    <td>**idx\_process\_instance\_id**</td>
    <td>Normal</td>
    <td colSpan={6}>app\_key,process\_instance\_id,operate\_time</td>
  </tr>

  <tr>
    <td>**idx\_task\_id**</td>
    <td>Normal</td>
    <td colSpan={6}>app\_key,task\_id</td>
  </tr>

  <tr>
    <td>**operator**</td>
    <td>Normal</td>
    <td colSpan={6}>app\_key,operator</td>
  </tr>

  <tr>
    <td>**original\_operator**</td>
    <td>Normal</td>
    <td colSpan={6}>app\_key,original\_operator</td>
  </tr>

  <tr>
    <td>**PRIMARY**</td>
    <td>Primary</td>
    <td colSpan={6}>id</td>
  </tr>
</table>

## Other Tables

tianshu\_instance\_relation: form instance relation table — used by the legacy YiDA dedicated storage. Deprecated.

yida\_entity\_instance: form instance data table — used by the legacy YiDA dedicated storage. Deprecated. Many users still depend on it; data is asynchronously synchronized through the odin\_open\_application\_data table. We recommend using the odin\_open\_application\_data table as the source of truth.

The following example shows how to add an index on timeout — replace the placeholder values while still using odin\_open\_application\_data as the reference:

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
CREATE INDEX CONCURRENTLY idx_model_filed_textField_xxxxx ON odin_open_application_data (
        namespace_code,
        table_name,
        is_deleted,
        parent_pid,
        (json_data ->> 'textField_xxxxx')
    ) WHERE namespace_code = 'APP_xxxx' and table_name = 'xxxx';
```

* Alternatively, use the productized interface. Manual index creation is preferred; if you are not sure how, create the index through the product instead. Indexes created through the product may occasionally fall short of optimal efficiency — contact R\&D if needed.

For physical column scenarios — for example, when querying the phy\_textfield\_lmsj0bkf field below:

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
select count(*) from yida_app_data_form_xxxxx a WHERE ( a.is_deleted = 'n' AND ( a.phy_textfield_lmsj0bkf = 'xxx')) AND ( a.namespace_code = 'xxxx' AND  a.table_name = 'xxx' AND  a.parent_pid IS NULL)

Create a btree index on phy_textfield_lmsj0bkf

CREATE INDEX CONCURRENTLY idx_model_phy_textfield_lmsj0bkf ON yida_app_data_form_xxxxx (
        namespace_code,
        table_name,
        is_deleted,
        parent_pid,
        phy_textfield_lmsj0bkf
)
```

tianshu\_form\_data: Form data table — used by the legacy YiDA dedicated storage. Deprecated.

ecds\_xxxx: YiDA internal system tables — these are internal tables used for system operation. Do not operate on them, and do not manually create them when switching databases; they are generated automatically.

yida\_app\_data\_xxx: physical column table — has the same schema as odin\_open\_application\_data, except that the json field is flattened. One table per form, and sub-tables are also independent tables.

Details are as follows:

The corresponding table name is the underline-lowercase form of the form page code above: yida\_app\_data\_form\_obd66r71q2asxubwc9p3g8yneplv2jcv43d6m3

Because database table name length limits must be observed, the sub-table name — which would originally be yida\_app\_data\_form\_obd66r71q2asxubwc9p3g8yneplv2jcv43d6m3\_tableFieldXxx — is truncated with an md5 hash once it reaches 64 bytes.

The final computation result is similar to the following:

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
String physicalTableName = tableName.substring(0, 63 - tableNameHashPostfix.length()) + tableNameHashPostfix;
```

tableName is yida\_app\_data\_form\_obd66r71q2asxubwc9p3g8yneplv2jcv43d6m3\_tableFieldXxx, and tableNameHashPostfix is "\_" + tableNameMd5 (where tableNameMd5 is the md5-encrypted result 8af1899537e0ac902f784162207c0e54).
