|
|
## 展开子表
|
|
|
|
|
|
如下图的两张表:tb_team及tb_members
|
|
|
|
|
|
```puml
|
|
|
@startuml
|
|
|
|
|
|
' hide the spot
|
|
|
hide circle
|
|
|
|
|
|
entity "tb_team" {
|
|
|
*id : number <<generated>>
|
|
|
--
|
|
|
*name : text
|
|
|
}
|
|
|
|
|
|
entity "tb_members" {
|
|
|
*id : number <<generated>>
|
|
|
--
|
|
|
*team_id : number <<FK>>
|
|
|
*name : text
|
|
|
}
|
|
|
|
|
|
tb_team --|{ tb_members
|
|
|
|
|
|
@enduml
|
|
|
```
|
|
|
|
|
|
例如希望得到如下入表后的结果
|
|
|
|
|
|
tb_team
|
|
|
|
|
|
|id|name|
|
|
|
|----|----|
|
|
|
|1|marvel|
|
|
|
|
|
|
tb_members
|
|
|
|
|
|
|id|team_id|member_name|
|
|
|
|----|----|----|
|
|
|
|1|1|Iron Man|
|
|
|
|2|1|Spider Man|
|
|
|
|
|
|
|
|
|
数据包需要按如下结构组装:
|
|
|
|
|
|
```json
|
|
|
{
|
|
|
"id": 1,
|
|
|
"name": "marvel",
|
|
|
"members": [
|
|
|
{
|
|
|
"id": 1,
|
|
|
"member_name": "Iron Man"
|
|
|
},
|
|
|
{
|
|
|
"id": 2,
|
|
|
"member_name": "Spider Man"
|
|
|
}
|
|
|
],
|
|
|
|
|
|
"sync_condition": {
|
|
|
"data_type": "teams",
|
|
|
"operation":"upsert",
|
|
|
}
|
|
|
}
|
|
|
```
|
|
|
|
|
|
配置文件中,名为teams的data_type定义如下:
|
|
|
|
|
|
```yaml
|
|
|
catalogues:
|
|
|
- data_type:
|
|
|
- <teams>: ['tb_team', "tb_numbers"]
|
|
|
table_explode:
|
|
|
<tb_members>:
|
|
|
explode_field: "members"
|
|
|
attach_fields":
|
|
|
<id>: "team_id"
|
|
|
``` |
|
|
\ No newline at end of file |