
# 树递归
#### 什么是树递归
树递归和一对多、多对多和聚合之间的差异在于一对多、多对多和聚合是两个不同的业务对象间产生关联，而树递归的双方为相同的对象类型，存储在同一张表中，递归关系的双方可以抽象成父子关系。树递归中，一个对象最多存在一个父对象，类似于数据结构中的树结构。创建树递归后，在数据库中会增加一个parentId字段，用来指向父节点。
图1新增parentId字段   
![](https://support.huaweicloud.com/usermanual-astropro/zh-cn_image_0000002148065320.png)
#### 关系属性设置
在业务设计页面，拖入一个BO业务对象（命名为Bo5）单击"relations"中的"树递归"，为对象建立树递归关系。选中已创建的关系，在右侧页面即可设置关系属性，如[图2]所示。
图2树递归   
![](https://support.huaweicloud.com/usermanual-astropro/zh-cn_image_0000002183499493.png)
- 关系名称：设置树递归关系的名称。
- 关系类型：根据创建的树递归关系自动生成。
- 关系首要方：根据创建的树递归关系自动生成。
- 关系次要方：根据创建的树递归关系自动生成。
- 关系操作：对象关系可执行哪些操作，如新增、删除、查询、批量新增、批量删除和批量查询。
- 每个*Bo5* 可以包含多少个子*Bo5*：一个首要方（父节点）和次要方（子节点）建立关联的数量上限。
- 每个父节点能有多少子节点上限预警值：首要方（父节点）一条数据最多关联次要方（子节点）多少条数据报出告警。
 
