# 物理世界

## 数据结构

### 1.对象实例表(dt_object)

| 字段          | 字段说明       | 数据类型     | 备注                 |
| ------------- | -------------- | ------------ | -------------------- |
| id            | 主键           | varchar(100) | 32位UUID             |
| name          | 对象名称       | varchar(100) | 对象名称             |
| local_id      | 对象本地编码   | varchar(100) | 对象本地id           |
| local_name    | 对象本地名称   | varchar(100) | 对象本地名称         |
| group_code    | 集团编码       | varchar(40)  | 对象类型             |
| project_id    | 项目id         | varchar(40)  | 类型编码             |
| obj_type      | 对象分类       | varchar(40)  | 集团编码             |
| class_code    | 对象类型编码   | varchar(40)  |                      |
| grouping      | 对象分组       | int(11)      | 1单个对象,2对象组    |
| infos         | 边类型编码     | json         |                      |
| virtual_codes | 虚点清单       | json         |                      |
| create_app    | 创建应用       | varchar(40)  |                      |
| update_app    | 最后更新应用   | varchar(40)  |                      |
| creator       | 创建人账号id   | varchar(32)  |                      |
| creation_time | 创建时间       | char(14)     | 格式为yyyyMMddHHmmss |
| modified_time | 最后更新时间   | char(14)     | 格式为yyyyMMddHHmmss |
| modifier      | 最后更新账号id | varchar(32)  |                      |
| valid         | 合法标识       | tinyint(4)   | 0-无效,1-有效        |
| ts            | 乐观锁         | timestamp    |                      |

### 2.关系实例表(dt_relation)
|     字段      |      字段说明      |  数据类型   |             备注              |
| :-----------: | :----------------: | :---------: | :---------------------------: |
|      id       | 主键(无业务含义) | varchar(40) |           32位UUID            |
|  group_code   |      集团编码      | varchar(40) |                               |
|  project_id   |       项目id       | varchar(40) | id规则:Pj+6位地区码+4位顺序码 |
|   graph_id    |       图主键       | varchar(40) |                               |
|  graph_code   |       图编码       | varchar(40) |                               |
|   rel_code    |      关系编码      | varchar(40) |                               |
|   rel_value   |       关系值       | varchar(45) |                               |
|   obj_from    |      来源对象      | varchar(60) |                               |
|    obj_to     |      目标对象      | varchar(60) |                               |
|  create_app   |      创建应用      | varchar(40) |                               |
|  update_app   |    最后更新应用    | varchar(40) |                               |
|    creator    |       创建人       | varchar(32) |                               |
| creation_time |      创建时间      |  char(14)   |     格式为yyyyMMddHHmmss      |
|   modifier    |     最后修改人     | varchar(32) |                               |
| modified_time |    最后修改时间    |  char(14)   |     格式为yyyyMMddHHmmss      |
|     valid     |      合法标识      | tinyint(4)  |         0-无效,1-有效         |
|      ts       |       乐观锁       |  timestamp  |                               |

### 3.图类型表(dt_define_graph)

|      字段       |      字段说明      |   数据类型   |         备注         |
| :-------------: | :----------------: | :----------: | :------------------: |
|       id        | 主键(无业务含义) | varchar(40)  |       32位UUID       |
|      code       |        编码        | varchar(40)  |                      |
|      name       |        名称        | varchar(200) |                      |
| first_category  |      一级分类      | varchar(40)  |                      |
| second_category |      二级分类      | varchar(40)  |                      |
|     remark      |      分类说明      | varchar(255) |                      |
|  object_types   |  关系两侧对象类别  | varchar(255) |                      |
|     creator     |       创建人       | varchar(32)  |                      |
|  creation_time  |      创建时间      |   char(14)   | 格式为yyyyMMddHHmmss |
|    modifier     |     最后修改人     | varchar(32)  |                      |
|  modified_time  |    最后修改时间    |   char(14)   | 格式为yyyyMMddHHmmss |
|      valid      |      合法标识      |  tinyint(4)  |    0-无效,1-有效     |
|       ts        |       乐观锁       |  timestamp   |                      |

### 4.边类型表(dt_define_rel)

|      字段      |          字段说明          |   数据类型   |         备注          |
| :------------: | :------------------------: | :----------: | :-------------------: |
|       id       |     主键(无业务含义)     | varchar(40)  |       32位UUID        |
|      code      |         边类型编码         | varchar(40)  |                       |
|      name      |         边类型名称         | varchar(40)  |                       |
|   graph_code   |         图类型编码         | varchar(40)  |                       |
|  directional   |          边方向性          |   int(11)    |                       |
|   attribute    |           边属性           | varchar(255) |                       |
|  target_objs   |        主要连接对象        | varchar(255) |                       |
|     remark     |            备注            | varchar(45)  |                       |
| before_cal_rel | 计算关系之前需要计算的关系 |     json     |                       |
|    cal_rule    |    计算器,就是计算规则     |     json     |                       |
| from_obj_type  |    边关系左侧的对象分类    | varchar(50)  |                       |
|  to_obj_type   |     关系右侧的对象分类     | varchar(50)  |                       |
| automatic_flag |          计算类型          |   tinyint    | 0-手动计算,1-自动计算 |
|    creator     |           创建人           | varchar(32)  |                       |
| creation_time  |          创建时间          |   char(14)   | 格式为yyyyMMddHHmmss  |
|    modifier    |         最后修改人         | varchar(32)  |                       |
| modified_time  |        最后修改时间        |   char(14)   | 格式为yyyyMMddHHmmss  |
|     valid      |          合法标识          |  tinyint(4)  |     0-无效,1-有效     |
|       ts       |           乐观锁           |  timestamp   |                       |

#### 4.1 before_cal_rel字段补充说明

该字段json结构如下

```
[
	{
		"graphCode":"***",
		"relCode":"***",
		"relValue":"***",
		"preRelDirection":true,
		"currentRelDirection":true
	}
]
```

|        字段         |  字段说明  |                         备注                         |
| :-----------------: | :--------: | :--------------------------------------------------: |
|      graphCode      | 图类型编码 |                                                      |
|       relCode       | 边类型编码 |                                                      |
|      relValue       | 关系类型值 |                多为空间的功能类型编码                |
|   preRelDirection   |  关联标记  | 前一种关系的是用左侧关系还是右侧关系与当前关系做关联 |
| currentRelDirection |  关联标记  | 当前关系的是用左侧关系还是右侧关系与前一种关系做关联 |



#### 4.2 cal_rule字段补充说明

该字段json结构如下

```
{
    "calRuleType":"***",
    "dependentRelChain":[
        {
            "graphCode":"***",
            "relCode":"***",
            "relValue":"***",
            "preRelDirection":true,
            "currentRelDirection":true
        }
    ],
    "graphCalInfo":{
        "fromInfoCode":"***",
        "toInfoCode":"***",
        "calRelFromFileRelFlag":true,
        "fromIsPointFlag":true,
        "toIsPointFlag":true
    }
}
```

|       字段        | 子字段                |   字段说明   |                          备注                           |
| :---------------: | --------------------- | :----------: | :-----------------------------------------------------: |
|    calRuleType    |                       | 计算规则类型 |          1-通过关系链计算,2-通过平面图坐标计算          |
| dependentRelChain |                       |  关系计算链  |              计算规则类型为1时的关系计算链              |
|                   | graphCode             |  图类型编码  |                                                         |
|                   | relCode               |  边类型编码  |                                                         |
|                   | relValue              |  关系类型值  |                 多为空间的功能类型编码                  |
|                   | preRelDirection       |   关联标记   |  前一种关系的是用左侧关系还是右侧关系与当前关系做关联   |
|                   | currentRelDirection   |   关联标记   |  当前关系的是用左侧关系还是右侧关系与前一种关系做关联   |
|   graphCalInfo    |                       |   坐标计算   |          计算规则类型为2时的坐标计算信息点code          |
|                   | fromInfoCode          |              |                左侧计算坐标的信息点code                 |
|                   | toInfoCode            |              |                右侧计算坐标的信息点code                 |
|                   | calRelFromFileRelFlag |              |     有种计算器是先根据model_id关联的业务id作为楼层      |
|                   | fromIsPointFlag       |              | 关系左侧为点的标识,true-关系左侧是点,false-关系左侧是面 |
|                   | toIsPointFlag         |              | 关系右侧为点的标识,true-关系右侧是点,false-关系右侧是面 |



#### 4.3 各种边关系的配置值(特指关系计算业务)

##### 4.3.1 ArchSubset:Bd2Sp

| 字段名         | 配置值                                                       |
| -------------- | ------------------------------------------------------------ |
| before_cal_rel | []                                                           |
| cal_rule       | {"calRuleType": "1", "dependentRelChain": [{"relCode": "Bd2Fl", "relValue": "", "graphCode": "ArchSubset", "preRelDirection": true, "currentRelDirection": true}, {"relCode": "Fl2Sp", "relValue": "", "graphCode": "ArchSubset", "preRelDirection": true, "currentRelDirection": true}]} |
| from_obj_type  | building                                                     |
| to_obj_type    | space                                                        |
| automatic_flag | 1                                                            |



##### 4.3.2 ArchSubset:Fl2Sp

| 字段名         | 配置值                                                       |
| -------------- | ------------------------------------------------------------ |
| before_cal_rel | []                                                           |
| cal_rule       | {"calRuleType":"2","graphCalInfo":{"fromInfoCode":"outline","toInfoCode":"outline","calRelFromFileRelFlag":false,"fromIsPointFlag":false,"toIsPointFlag":false}} |
| from_obj_type  | floor                                                        |
| to_obj_type    | space                                                        |
| automatic_flag | 1                                                            |



##### 4.3.3 ArchSubset:Bd2Sh

| 字段名         | 配置值                                                       |
| -------------- | ------------------------------------------------------------ |
| before_cal_rel | []                                                           |
| cal_rule       | {"calRuleType":"1","dependentRelChain":[{"relCode":"Bd2Sp","relValue":"","graphCode":"ArchSubset","preRelDirection":true,"currentRelDirection":true},{"relCode":"Sh2Sp","relValue":"","graphCode":"ArchSubset","preRelDirection":true,"currentRelDirection":false}]} |
| from_obj_type  | building                                                     |
| to_obj_type    | shaft                                                        |
| automatic_flag | 1                                                            |



##### 4.3.4 MechInArch:Eq2Fl

| 字段名         | 配置值                                                       |
| -------------- | ------------------------------------------------------------ |
| before_cal_rel | []                                                           |
| cal_rule       | {"calRuleType":"2","graphCalInfo":{"fromInfoCode":"bimLocation","toInfoCode":"outline","calRelFromFileRelFlag":false,"fromIsPointFlag":true,"toIsPointFlag":false}} |
| from_obj_type  | equipment                                                    |
| to_obj_type    | floor                                                        |
| automatic_flag | 1                                                            |



##### 4.3.5 MechInArch:Eq2Bd

| 字段名         | 配置值                                                       |
| -------------- | ------------------------------------------------------------ |
| before_cal_rel | [{"graphCode":"MechInArch","relCode":"Eq2Fl","relValue":"","preRelDirection":true,"currentRelDirection":true}] |
| cal_rule       | {"calRuleType":"1","dependentRelChain":[{"relCode":"Eq2Fl","relValue":"","graphCode":"MechInArch","preRelDirection":true,"currentRelDirection":true},{"relCode":"Bd2Fl","relValue":"","graphCode":"ArchSubset","preRelDirection":true,"currentRelDirection":false}]} |
| from_obj_type  | equipment                                                    |
| to_obj_type    | building                                                     |
| automatic_flag | 1                                                            |



##### 4.3.6 MechInArch:Eq2Sp

| 字段名         | 配置值                                                       |
| -------------- | ------------------------------------------------------------ |
| before_cal_rel | [{"graphCode":"MechInArch","relCode":"Eq2Fl","relValue":"","preRelDirection":true,"currentRelDirection":true},{"graphCode":"ArchSubset","relCode":"Fl2Sp","relValue":"","preRelDirection":true,"currentRelDirection":true}] |
| cal_rule       | {"calRuleType":"1","dependentRelChain":[{"relCode":"Eq2Fl","relValue":"","graphCode":"MechInArch","preRelDirection":true,"currentRelDirection":true},{"relCode":"Fl2Sp","relValue":"","graphCode":"ArchSubset","preRelDirection":true,"currentRelDirection":true}]} |
| from_obj_type  | equipment                                                    |
| to_obj_type    | space                                                        |
| automatic_flag | 1                                                            |



##### 4.3.7 MechInArch:Eq2Sh

| 字段名         | 配置值                                                       |
| -------------- | ------------------------------------------------------------ |
| before_cal_rel | [{"graphCode":"MechInArch","relCode":"Eq2Sp","relValue":"","preRelDirection":true,"currentRelDirection":true}] |
| cal_rule       | {"calRuleType":"1","dependentRelChain":[{"relCode":"Eq2Sp","relValue":"","graphCode":"MechInArch","preRelDirection":true,"currentRelDirection":true},{"relCode":"Sh2Sp","relValue":"","graphCode":"ArchSubset","preRelDirection":true,"currentRelDirection":false}]} |
| from_obj_type  | equipment                                                    |
| to_obj_type    | shaft                                                        |
| automatic_flag | 1                                                            |



##### 4.3.8 MechInArch:Sy2Bd

| 字段名         | 配置值                                                       |
| -------------- | ------------------------------------------------------------ |
| before_cal_rel | [{"graphCode":"MechInArch","relCode":"Eq2Bd","relValue":"","preRelDirection":true,"currentRelDirection":true}] |
| cal_rule       | {"calRuleType":"1","dependentRelChain":[{"relCode":"Sy2Eq","relValue":"","graphCode":"MechInArch","preRelDirection":true,"currentRelDirection":true},{"relCode":"Eq2Bd","relValue":"","graphCode":"MechInArch","preRelDirection":true,"currentRelDirection":true}]} |
| from_obj_type  | system                                                       |
| to_obj_type    | building                                                     |
| automatic_flag | 1                                                            |



##### 4.3.9 MechInArch:Sy2Fl

| 字段名         | 配置值                                                       |
| -------------- | ------------------------------------------------------------ |
| before_cal_rel | [{"graphCode":"MechInArch","relCode":"Eq2Fl","relValue":"","preRelDirection":true,"currentRelDirection":true}] |
| cal_rule       | {"calRuleType":"1","dependentRelChain":[{"relCode":"Sy2Eq","relValue":"","graphCode":"MechInArch","preRelDirection":true,"currentRelDirection":true},{"relCode":"Eq2Fl","relValue":"","graphCode":"MechInArch","preRelDirection":true,"currentRelDirection":true}]} |
| from_obj_type  | system                                                       |
| to_obj_type    | floor                                                        |
| automatic_flag | 1                                                            |



##### 4.3.10 MechInArch:Sy2Fl

| 字段名         | 配置值                                                       |
| -------------- | ------------------------------------------------------------ |
| before_cal_rel | [{"graphCode":"MechInArch","relCode":"Eq2Sh","relValue":"","preRelDirection":true,"currentRelDirection":true}] |
| cal_rule       | {"calRuleType":"1","dependentRelChain":[{"relCode":"Sy2Eq","relValue":"","graphCode":"MechInArch","preRelDirection":true,"currentRelDirection":true},{"relCode":"Eq2Sh","relValue":"","graphCode":"MechInArch","preRelDirection":true,"currentRelDirection":true}]} |
| from_obj_type  | system                                                       |
| to_obj_type    | floor                                                        |
| automatic_flag | 1                                                            |



##### 4.3.11 MechInArch:Sy2Sp

| 字段名         | 配置值                                                       |
| -------------- | ------------------------------------------------------------ |
| before_cal_rel | [{"graphCode":"MechInArch","relCode":"Eq2Sp","relValue":"","preRelDirection":true,"currentRelDirection":true}] |
| cal_rule       | {"calRuleType":"1","dependentRelChain":[{"relCode":"Sy2Eq","relValue":"","graphCode":"MechInArch","preRelDirection":true,"currentRelDirection":true},{"relCode":"Eq2Sp","relValue":"","graphCode":"MechInArch","preRelDirection":true,"currentRelDirection":true}]} |
| from_obj_type  | system                                                       |
| to_obj_type    | space                                                        |
| automatic_flag | 1                                                            |









### 5.信息点定义表(dt_define_info)

| 字段          | 字段说明       | 数据类型     | 备注                                                         |
| ------------- | -------------- | ------------ | ------------------------------------------------------------ |
| id            | 主键           | varchar(40)  | 32位UUID                                                     |
| code          | 信息点编码     | varchar(60)  | 同类型下唯一,标准驼峰格式                                    |
| name          | 信息点名称     | varchar(200) |                                                              |
| alias_code    | 别名编码       | varchar(60)  |                                                              |
| alias_name    | 别名名称       | varchar(200) |                                                              |
| class_code    | 类型编码       | varchar(60)  |                                                              |
| group_code    | 集团编码       | varchar(40)  |                                                              |
| project_id    | 项目id         | varchar(40)  |                                                              |
| category      | 信息点分类     | varchar(40)  | 静态,脉冲,阶段,时序                                          |
| first_tag     | 一级标签       | varchar(40)  |                                                              |
| second_tag    | 二级标签       | varchar(40)  |                                                              |
| priority      | 优先级         | varchar(10)  |                                                              |
| input_mode    | 输入方式       | varchar(40)  |                                                              |
| unit          | 单位           | varchar(40)  |                                                              |
| data_type     | 数据类型       | varchar(40)  |                                                              |
| is_multiple   | 是否复数       | int(11)      |                                                              |
| is_region     | 是否区间       | int(11)      |                                                              |
| formater      | 数据格式       | varchar(40)  |                                                              |
| data_source   | 数据源         | json         | 数据源取值范围/枚举值清单等,根据dataType有不同的内容         |
| remark        | 备注           | text         |                                                              |
| sub_flag      | 子分类标记     | int(11)      | 是否可以按此信息点进行子分类替换,同一类型下目前只支持一个子分类信息点 |
| weak_point    | 虚点           | int(11)      |                                                              |
| show_order    | 显示顺序       | int(11)      |                                                              |
| version       | 最后修改版本   | varchar(40)  |                                                              |
| type          | 管理层级       | varchar(40)  | common-平台级,group-集团级,project-项目级                    |
| creator       | 创建人账号id   | varchar(32)  |                                                              |
| creation_time | 创建时间       | char(14)     | 格式为yyyyMMddHHmmss                                         |
| modified_time | 最后更新时间   | char(14)     | 格式为yyyyMMddHHmmss                                         |
| modifier      | 最后更新账号id | varchar(32)  |                                                              |
| valid         | 合法标识       | tinyint(4)   | 0-无效,1-有效                                                |
| ts            | 乐观锁         | timestamp    |                                                              |



### 6.对象类型定义表(dt_define_type)

| 字段           | 字段说明       | 数据类型     | 备注                                      |
| -------------- | -------------- | ------------ | ----------------------------------------- |
| id             | 主键           | varchar(40)  | 32位UUID                                  |
| code           | 信息点编码     | varchar(40)  | 同类型下唯一,标准驼峰格式                 |
| name           | 信息点名称     | varchar(200) |                                           |
| alias_code     | 别名编码       | varchar(40)  |                                           |
| alias_name     | 别名名称       | varchar(200) |                                           |
| obj_type       | 大类型         | varchar(40)  | 项目建筑楼层空间系统设备竖井              |
| group_code     | 集团编码       | varchar(40)  |                                           |
| project_id     | 项目id         | varchar(40)  |                                           |
| major_code     | 专业编码       | varchar(40)  | 类型是系统or设备时该字段有值              |
| system_code    | 系统编码       | varchar(40)  | 类型是设备时该字段有值,值为系统类型的code |
| equipment_code | 设备编码       | varchar(40)  | 类型是部件时该字段有值,值为设备类型的code |
| parent_code    | 上级类型code   | varchar(40)  | 默认为"0"                                 |
| version        | 最后修改版本   | varchar(40)  |                                           |
| type           | 管理层级       | varchar(40)  | common-平台级,group-集团级,project-项目级 |
| creator        | 创建人账号id   | varchar(32)  |                                           |
| creation_time  | 创建时间       | char(14)     | 格式为yyyyMMddHHmmss                      |
| modified_time  | 最后更新时间   | char(14)     | 格式为yyyyMMddHHmmss                      |
| modifier       | 最后更新账号id | varchar(32)  |                                           |
| valid          | 合法标识       | tinyint(4)   | 0-无效,1-有效                             |
| ts             | 乐观锁         | timestamp    |                                           |



### 6.项目关系记录表(relation_project_cal)

| 字段                | 字段说明           | 数据类型     | 备注                                                         |
| ------------------- | ------------------ | ------------ | ------------------------------------------------------------ |
| id                  | 主键               | varchar(200) | 32位UUID                                                     |
| graph_code          | 图类型编码         | varchar(100) |                                                              |
| rel_code            | 关系类型编码       | varchar(100) |                                                              |
| source_flag         | 是否需要配置源末端 | tinyint      | 1-需要,0-不需要                                              |
| automatic_flag      | 是否自动计算类型   | tinyint      | 1-自动计算,0-手动计算                                        |
| manual              | 手动计算类型       | tinyint      | 1 禁用  2提示引导 3手动维护                                  |
| project_id          | 项目id             | varchar(200) |                                                              |
| computing_time      | 计算时间           | varchar(100) | 最后一次自动计算时间,格式为yyyyMMddHHmmss                    |
| computational_state | 计算状态           | tinyint      | 1初始状态 2需要计算 3计算中 4等待中 5计算失败(如果处于计算中状态,则不再次调用) |
| zone_type           | 业务分区类型       | varchar(50)  |                                                              |
| system_type         | 系统类型           | tinyint      | 风系统1,水系统0                                              |
| rel_manual_type     | 手动计算关系类型   | varchar(200) |                                                              |
| compute_version     | 计算版本           | tinyint      |                                                              |
| creator             | 创建人账号id       | varchar(32)  |                                                              |
| creation_time       | 创建时间           | char(14)     | 格式为yyyyMMddHHmmss                                         |
| modified_time       | 最后更新时间       | char(14)     | 格式为yyyyMMddHHmmss                                         |
| modifier            | 最后更新账号id     | varchar(32)  |                                                              |
| valid               | 合法标识           | tinyint(4)   | 0-无效,1-有效                                                |
| ts                  | 乐观锁             | timestamp    |                                                              |



## DDL语句

### 对象实例表

```sql
CREATE TABLE IF NOT EXISTS `dt_object` (
  `id` varchar(100) NOT NULL,
  `name` varchar(100) DEFAULT NULL COMMENT '对象名称',
  `local_id` varchar(100) DEFAULT NULL COMMENT '对象本地编码',
  `local_name` varchar(100) DEFAULT NULL COMMENT '对象本地名称',
  `group_code` varchar(40) DEFAULT NULL COMMENT '集团编码',
  `project_id` varchar(40) NOT NULL COMMENT '项目id',
  `obj_type` varchar(40) NOT NULL COMMENT '对象分类',
  `class_code` varchar(40) NOT NULL COMMENT '对象类型编码',
  `grouping` int(11) NOT NULL DEFAULT '1' COMMENT '1单个对象,2对象组',
  `infos` json DEFAULT NULL COMMENT '边类型编码',
  `virtual_codes` json DEFAULT NULL COMMENT '虚点清单',
  `create_app` varchar(40) DEFAULT NULL COMMENT '创建应用',
  `update_app` varchar(40) DEFAULT NULL COMMENT '最后更新应用',
  `creator` varchar(32) DEFAULT NULL COMMENT '创建人',
  `creation_time` char(14) DEFAULT NULL COMMENT '创建时间',
  `modifier` varchar(32) DEFAULT NULL COMMENT '最后修改人',
  `modified_time` char(14) DEFAULT NULL COMMENT '最后修改时间',
  `valid` tinyint(4) DEFAULT NULL COMMENT '合法标识',
  `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '乐观锁',
  PRIMARY KEY (`id`) USING BTREE,
  KEY `idx_project_1` (`project_id`,`class_code`,`creation_time`) USING BTREE,
  KEY `idx_project_2` (`project_id`,`creation_time`) USING BTREE,
  KEY `idx_project_3` (`project_id`,`modified_time`) USING BTREE,
  KEY `idx_0` (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='对象实例表';
```

### 关系实例表

```sql
CREATE TABLE IF NOT EXISTS `dt_relation` (
  `id` varchar(40) NOT NULL,
  `group_code` varchar(40) DEFAULT NULL,
  `project_id` varchar(40) NOT NULL,
  `graph_id` varchar(40) DEFAULT NULL COMMENT '图主键',
  `graph_code` varchar(40) DEFAULT NULL COMMENT '图编码',
  `rel_code` varchar(40) DEFAULT NULL COMMENT '关系编码',
  `rel_value` varchar(45) DEFAULT NULL COMMENT '关系值',
  `obj_from` varchar(60) DEFAULT NULL COMMENT '来源对象',
  `obj_to` varchar(60) DEFAULT NULL COMMENT '目标对象',
  `create_app` varchar(40) DEFAULT NULL COMMENT '创建应用',
  `update_app` varchar(40) DEFAULT NULL COMMENT '最后更新应用',
  `creator` varchar(32) DEFAULT NULL COMMENT '创建人',
  `creation_time` char(14) DEFAULT NULL COMMENT '创建时间',
  `modifier` varchar(32) DEFAULT NULL COMMENT '最后修改人',
  `modified_time` char(14) DEFAULT NULL COMMENT '最后修改时间',
  `valid` tinyint(4) DEFAULT NULL COMMENT '合法标识',
  `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '乐观锁',
  PRIMARY KEY (`id`) USING BTREE,
  KEY `idx_graph_code` (`graph_code`) USING BTREE,
  KEY `idx_1` (`graph_code`,`rel_code`,`obj_from`,`obj_to`,`project_id`) USING BTREE,
  KEY `idx_3` (`graph_code`,`rel_code`,`obj_to`,`project_id`) USING BTREE,
  KEY `idx_2` (`graph_id`,`rel_code`,`obj_from`,`obj_to`,`project_id`) USING BTREE,
  KEY `idx_4` (`graph_id`,`rel_code`,`obj_to`,`project_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='关系实例表';
```

### 图类型表

```sql
CREATE TABLE IF NOT EXISTS `dt_define_graph` (
  `id` varchar(40) NOT NULL,
  `code` varchar(40) DEFAULT NULL COMMENT '编码',
  `name` varchar(200) DEFAULT NULL COMMENT '名称',
  `first_category` varchar(40) DEFAULT NULL COMMENT '一级分类',
  `second_category` varchar(40) DEFAULT NULL COMMENT '二级分类',
  `remark` varchar(255) DEFAULT NULL COMMENT '分类说明',
  `object_types` varchar(255) DEFAULT NULL COMMENT '关系两侧对象类别',
  `creator` varchar(32) DEFAULT NULL COMMENT '创建人',
  `creation_time` char(14) DEFAULT NULL COMMENT '创建时间',
  `modifier` varchar(32) DEFAULT NULL COMMENT '最后修改人',
  `modified_time` char(14) DEFAULT NULL COMMENT '最后修改时间',
  `valid` tinyint(4) DEFAULT NULL COMMENT '合法标识',
  `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '乐观锁',
  PRIMARY KEY (`id`) USING BTREE,
  KEY `idx_code` (`code`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='图类型表';
```



### 边类型表

```
CREATE TABLE `dt_define_rel` (
  `id` varchar(40) NOT NULL,
  `code` varchar(40) DEFAULT NULL COMMENT '边类型编码',
  `name` varchar(40) DEFAULT NULL COMMENT '边类型名称',
  `graph_code` varchar(40) DEFAULT NULL COMMENT '图类型编码',
  `directional` int(11) DEFAULT NULL COMMENT '边方向性',
  `attribute` varchar(255) DEFAULT NULL COMMENT '边属性',
  `target_objs` varchar(255) DEFAULT NULL COMMENT '主要连接对象',
  `remark` varchar(45) DEFAULT NULL COMMENT '备注',
  `creator` varchar(32) DEFAULT NULL COMMENT '创建人',
  `creation_time` char(14) DEFAULT NULL COMMENT '创建时间',
  `modifier` varchar(32) DEFAULT NULL COMMENT '最后修改人',
  `modified_time` char(14) DEFAULT NULL COMMENT '最后修改时间',
  `valid` tinyint(4) DEFAULT NULL COMMENT '合法标识',
  `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '乐观锁',
  PRIMARY KEY (`id`) USING BTREE,
  KEY `code` (`code`) USING BTREE,
  KEY `graph_code` (`graph_code`,`code`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='边类型表';
```



### 信息点定义表

```sql
CREATE TABLE IF NOT EXISTS `dt_define_info` (
  `id` varchar(40) NOT NULL,
  `code` varchar(60) NOT NULL COMMENT '信息点编码,同类型下唯一,标准驼峰格式',
  `name` varchar(200) DEFAULT NULL COMMENT '信息点名称',
  `alias_code` varchar(60) DEFAULT NULL COMMENT '别名编码',
  `alias_name` varchar(200) DEFAULT NULL COMMENT '别名名称',
  `class_code` varchar(60) DEFAULT NULL COMMENT '类型编码',
  `group_code` varchar(40) NOT NULL DEFAULT '0' COMMENT '集团编码',
  `project_id` varchar(40) NOT NULL DEFAULT '0' COMMENT '项目id',
  `category` varchar(40) DEFAULT NULL COMMENT '信息点分类:静态,脉冲,阶段,时序',
  `first_tag` varchar(40) DEFAULT NULL COMMENT '一级标签',
  `second_tag` varchar(40) DEFAULT NULL COMMENT '二级标签',
  `priority` varchar(10) DEFAULT NULL COMMENT '优先级',
  `input_mode` varchar(40) DEFAULT NULL COMMENT '输入方式',
  `unit` varchar(40) DEFAULT NULL COMMENT '单位',
  `data_type` varchar(40) DEFAULT NULL COMMENT '数据类型',
  `is_multiple` int(11) DEFAULT NULL COMMENT '是否复数',
  `is_region` int(11) DEFAULT NULL COMMENT '是否区间',
  `formater` varchar(40) DEFAULT NULL COMMENT '数据格式',
  `data_source` json DEFAULT NULL COMMENT '数据源取值范围/枚举值清单等,根据dataType有不同的内容',
  `remark` text COMMENT '备注',
  `sub_flag` int(11) DEFAULT NULL COMMENT '子分类标记:是否可以按此信息点进行子分类替换,同一类型下目前只支持一个子分类信息点',
  `weak_point` int(11) DEFAULT NULL COMMENT '虚点',
  `show_order` int(11) DEFAULT NULL COMMENT '显示顺序',
  `version` varchar(40) DEFAULT NULL COMMENT '最后修改版本',
  `creator` varchar(32) DEFAULT NULL COMMENT '创建人',
  `creation_time` char(14) DEFAULT NULL COMMENT '创建时间',
  `modifier` varchar(32) DEFAULT NULL COMMENT '最后修改人',
  `modified_time` char(14) DEFAULT NULL COMMENT '最后修改时间',
  `valid` tinyint(4) DEFAULT NULL COMMENT '合法标识',
  `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '乐观锁',
  `type` varchar(40) DEFAULT NULL COMMENT '管理层级:common-平台级,group-集团级,project-项目级',
  PRIMARY KEY (`id`) USING BTREE,
  KEY `idx_class_1` (`class_code`,`code`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='信息点定义表';
```



### 对象类型定义表

```sql
CREATE TABLE IF NOT EXISTS `dt_define_type` (
  `id` varchar(40) NOT NULL COMMENT '主键',
  `code` varchar(40) NOT NULL COMMENT '编码-全局唯一',
  `name` varchar(200) NOT NULL COMMENT '名称',
  `alias_code` varchar(40) NOT NULL COMMENT '别名编码, 集团下唯一 ',
  `alias_name` varchar(200) NOT NULL COMMENT '别名名称',
  `obj_type` varchar(40) DEFAULT NULL COMMENT '大类型:项目建筑楼层空间系统设备竖井',
  `group_code` varchar(40) NOT NULL DEFAULT '0' COMMENT '集团编码',
  `project_id` varchar(40) NOT NULL DEFAULT '0' COMMENT '项目id',
  `major_code` varchar(40) DEFAULT NULL COMMENT '专业编码, 上级类型是系统or设备时该字段有值',
  `system_code` varchar(40) DEFAULT NULL COMMENT '系统编码,上级类型是设备时该字段有值,值为系统类型的code',
  `equipment_code` varchar(40) DEFAULT NULL COMMENT '设备编码,上级类型是部件时该字段有值,值为设备类型的code',
  `parent_code` varchar(40) DEFAULT NULL COMMENT '上级类型code,默认为"0"',
  `version` varchar(40) DEFAULT NULL COMMENT '最后修改版本',
  `creator` varchar(32) DEFAULT NULL COMMENT '创建人',
  `creation_time` char(14) DEFAULT NULL COMMENT '创建时间',
  `modifier` varchar(32) DEFAULT NULL COMMENT '最后修改人',
  `modified_time` char(14) DEFAULT NULL COMMENT '最后修改时间',
  `valid` tinyint(4) DEFAULT NULL COMMENT '合法标识',
  `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '乐观锁',
  `type` varchar(40) DEFAULT NULL COMMENT '管理层级:common-平台级,group-集团级,project-项目级',
  PRIMARY KEY (`id`) USING BTREE,
  KEY `idx_code` (`code`) USING BTREE,
  KEY `idx_alias_code` (`alias_code`) USING BTREE,
  KEY `idx_parent_code` (`parent_code`) USING BTREE,
  KEY `idx_major_code` (`major_code`) USING BTREE,
  KEY `idx_code_1` (`group_code`,`project_id`,`code`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='对象类型定义';
```