【发布时间】:2022-08-03 15:56:46
【问题描述】:
我有以下想要映射到关系模型的 XML,以便我可以再次查询和重新导出相同的 XML。
<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<document name=\"001_COUNTERPARTY_CATEGORY_UK_BOE\" date=\"2022-06-30\" level=\"01-01-xx-xx-xx\">
<PARTY F=\"01-01\" PARTY_ID=\"201_A_Prod_P\" />
<PARTY_FIELD F1=\"01-01\" PARTY_ID=\"201_A_Prod_P\" fieldname=\"CTY0\" value=\"IR\"/>
<PARTY_FIELD F1=\"01-01\" PARTY_ID=\"201_A_Prod_P\" fieldname=\"CTY1\" value=\"IR\"/>
<PARTY_FIELD F1=\"01-01\" PARTY_ID=\"201_A_Prod_P\" fieldname=\"SIE\" value=\"64_19\"/>
<PARTY_FIELD F1=\"01-01\" PARTY_ID=\"201_A_Prod_P\" fieldname=\"SIE\" value=\"0\"/>
<CHANNEL F=\"01-01\" CHANNEL_ID=\"201_A_Prod_PRODUCT\"/>
<CHANNEL_FIELD F=\"01-01\" CHANNEL_ID=\"201_A_Prod_PRODUCT\" fieldname=\"PRD013\" value=\"1010\"/>
<CHANNEL_FIELD F=\"01-01\" CHANNEL_ID=\"201_A_Prod_PRODUCT\" fieldname=\"CUR007\" value=\"GBP\"/>
<CHANNEL_FIELD F=\"01-01\" CHANNEL_ID=\"201_A_Prod_PRODUCT\" fieldname=\"PARTY_ID30\" value=\"201_A_Prod_P\"/>
<RATE F=\"01-01\" RATE_ID=\"201_A_Prod_PRODUCT\"/>
<RATE_FIELD F=\"01-01\" RATE_ID=\"201_A_Prod_PRODUCT\" fieldname=\"CHANNEL_ID0\" value=\"201_A_Prod_PRODUCT\"/>
<RATE_FIELD F=\"01-01\" RATE_ID=\"201_A_Prod_PRODUCT\" fieldname=\"C213\" value=\"100000\"/>
<RATE_FIELD F=\"01-01\" RATE_ID=\"201_A_Prod_PRODUCT\" fieldname=\"C214\" value=\"100000\"/>
<RATE_FIELD F=\"01-01\" RATE_ID=\"201_A_Prod_PRODUCT\" fieldname=\"C215\" value=\"100000\"/>
<RATE_FIELD F=\"01-01\" RATE_ID=\"201_A_Prod_PRODUCT\" fieldname=\"PTY001\" value=\"1\"/>
<RATE_FIELD F=\"01-01\" RATE_ID=\"201_A_Prod_PRODUCT\" fieldname=\"PTY002\" value=\"1\"/>
<RATE_FIELD F=\"01-01\" RATE_ID=\"201_A_Prod_PRODUCT\" fieldname=\"PTY006\" value=\"0\"/>
<RATE_FIELD F=\"01-01\" RATE_ID=\"201_A_Prod_PRODUCT\" fieldname=\"PTY025\" value=\"0\"/>
</document>
PARTY AND CHANNEL 通过 CHANNEL_FIELD\'s 属性相互关联 PARTY_ID30
和CHANNEL 通过RATE_FIELD\'s 属性CHANNEL_ID0 与RATE 相关联
我创建了如下表,但我无法像给定的 xml 那样查询它们以导出:
PARTY (F,PARTY_ID,PARTY_FIELDNAME,PARTY_FIELDVALUE)
CHANNEL (F,CHANNEL_ID,CHANNEL_FIELDNAME,CHANNEL_FIELDVALUE)
PRODUCT (F,RATE_ID,RATE_FIELDNAME,RATE_FIELDVALUE)
我需要更改架构以让我查询和导出行以创建此 xml,或者构建查询以生成与上述架构中的 xml 顺序相同的行。
另一种方法是导出csv中的行,然后使用python生成xml,但是对于大型数据集来说会是开销
-
一个特定的
CHANNEL_FIELDfieldname作为外键的数据模型有点混乱。您确定要坚持使用此模型吗?这真的很奇怪,即使对于 XML 也是如此。 -
@digitalarbeiter 我理解,但是源系统生成数据是这样的