Составить порядок импорта и соединить заказ по полному ключу

Данные получены настоящими запросами через PDO_CUBRID. После наблюдений собственные учебные объекты удалены.

Результат выполнения
НаблюдениеРезультат
Порядок импортаorders → order_lines; затем чтение order_view
Ключ заказаwarehouse + order_no
Связь строки с заказомwarehouse + order_no → warehouse + order_no
Заказ склада 1501 / Лаборатория
Кабель3 × 12550 = 37650 коп.
Хомут4 × 125 = 500 коп.
Итог2 строки; 38150 коп.
UNIQUE / INDEXsku / qty; отдельно от PK и FK
Файлimport-plan.csv
Полученные строки и дополнительные наблюдения
{
    "parent_key_columns": [
        "warehouse",
        "order_no"
    ],
    "child_key_columns": [
        "warehouse",
        "order_no",
        "line_no"
    ],
    "foreign_child_columns": [
        "warehouse",
        "order_no"
    ],
    "foreign_parent_columns": [
        "warehouse",
        "order_no"
    ],
    "schema_forms": {
        "primary": [
            {
                "CLASS_NAME": "dba.pdoc175_orders_3e63216241",
                "ATTR_NAME": "order_no",
                "KEY_SEQ": "2",
                "KEY_NAME": "pk_pdoc175_orders_3e63216241_warehouse_order_no"
            },
            {
                "CLASS_NAME": "dba.pdoc175_orders_3e63216241",
                "ATTR_NAME": "warehouse",
                "KEY_SEQ": "1",
                "KEY_NAME": "pk_pdoc175_orders_3e63216241_warehouse_order_no"
            }
        ],
        "imported": [
            {
                "PKTABLE_NAME": "dba.pdoc175_orders_3e63216241",
                "PKCOLUMN_NAME": "warehouse",
                "FKTABLE_NAME": "pdoc175_lines_858db41c27",
                "FKCOLUMN_NAME": "warehouse",
                "KEY_SEQ": "1",
                "UPDATE_RULE": "1",
                "DELETE_RULE": "1",
                "FK_NAME": "fk_pdoc175_lines_858db41c27_warehouse_order_no",
                "PK_NAME": "pk_pdoc175_orders_3e63216241_warehouse_order_no"
            },
            {
                "PKTABLE_NAME": "dba.pdoc175_orders_3e63216241",
                "PKCOLUMN_NAME": "order_no",
                "FKTABLE_NAME": "pdoc175_lines_858db41c27",
                "FKCOLUMN_NAME": "order_no",
                "KEY_SEQ": "2",
                "UPDATE_RULE": "1",
                "DELETE_RULE": "1",
                "FK_NAME": "fk_pdoc175_lines_858db41c27_warehouse_order_no",
                "PK_NAME": "pk_pdoc175_orders_3e63216241_warehouse_order_no"
            }
        ],
        "exported": [
            {
                "PKTABLE_NAME": "pdoc175_orders_3e63216241",
                "PKCOLUMN_NAME": "warehouse",
                "FKTABLE_NAME": "dba.pdoc175_lines_858db41c27",
                "FKCOLUMN_NAME": "warehouse",
                "KEY_SEQ": "1",
                "UPDATE_RULE": "1",
                "DELETE_RULE": "1",
                "FK_NAME": "fk_pdoc175_lines_858db41c27_warehouse_order_no",
                "PK_NAME": "pk_pdoc175_orders_3e63216241_warehouse_order_no"
            },
            {
                "PKTABLE_NAME": "pdoc175_orders_3e63216241",
                "PKCOLUMN_NAME": "order_no",
                "FKTABLE_NAME": "dba.pdoc175_lines_858db41c27",
                "FKCOLUMN_NAME": "order_no",
                "KEY_SEQ": "2",
                "UPDATE_RULE": "1",
                "DELETE_RULE": "1",
                "FK_NAME": "fk_pdoc175_lines_858db41c27_warehouse_order_no",
                "PK_NAME": "pk_pdoc175_orders_3e63216241_warehouse_order_no"
            }
        ],
        "cross": [
            {
                "PKTABLE_NAME": "pdoc175_orders_3e63216241",
                "PKCOLUMN_NAME": "warehouse",
                "FKTABLE_NAME": "pdoc175_lines_858db41c27",
                "FKCOLUMN_NAME": "warehouse",
                "KEY_SEQ": "1",
                "UPDATE_RULE": "1",
                "DELETE_RULE": "1",
                "FK_NAME": "fk_pdoc175_lines_858db41c27_warehouse_order_no",
                "PK_NAME": "pk_pdoc175_orders_3e63216241_warehouse_order_no"
            },
            {
                "PKTABLE_NAME": "pdoc175_orders_3e63216241",
                "PKCOLUMN_NAME": "order_no",
                "FKTABLE_NAME": "pdoc175_lines_858db41c27",
                "FKCOLUMN_NAME": "order_no",
                "KEY_SEQ": "2",
                "UPDATE_RULE": "1",
                "DELETE_RULE": "1",
                "FK_NAME": "fk_pdoc175_lines_858db41c27_warehouse_order_no",
                "PK_NAME": "pk_pdoc175_orders_3e63216241_warehouse_order_no"
            }
        ],
        "constraints": [
            {
                "TYPE": "0",
                "NAME": "u_pdoc175_lines_858db41c27_sku",
                "ATTR_NAME": "sku",
                "NUM_PAGES": "0",
                "NUM_KEYS": "0",
                "PRIMARY_KEY": "0",
                "KEY_ORDER": "1",
                "ASC_DESC": "A"
            },
            {
                "TYPE": "1",
                "NAME": "pdoc175_lines_858db41c27_qty_ix",
                "ATTR_NAME": "qty",
                "NUM_PAGES": "0",
                "NUM_KEYS": "0",
                "PRIMARY_KEY": "0",
                "KEY_ORDER": "1",
                "ASC_DESC": "A"
            }
        ],
        "attributes": [
            {
                "ATTR_NAME": "warehouse",
                "DOMAIN": "8",
                "SCALE": "0",
                "PRECISION": "10",
                "INDEXED": "1",
                "NON_NULL": "1",
                "SHARED": "0",
                "UNIQUE": "1",
                "DEFAULT": "NULL",
                "ATTR_ORDER": "1",
                "CLASS_NAME": "dba.pdoc175_lines_858db41c27",
                "SOURCE_CLASS": "dba.pdoc175_lines_858db41c27",
                "IS_KEY": "1",
                "REMARKS": ""
            },
            {
                "ATTR_NAME": "order_no",
                "DOMAIN": "8",
                "SCALE": "0",
                "PRECISION": "10",
                "INDEXED": "1",
                "NON_NULL": "1",
                "SHARED": "0",
                "UNIQUE": "1",
                "DEFAULT": "NULL",
                "ATTR_ORDER": "2",
                "CLASS_NAME": "dba.pdoc175_lines_858db41c27",
                "SOURCE_CLASS": "dba.pdoc175_lines_858db41c27",
                "IS_KEY": "1",
                "REMARKS": ""
            },
            {
                "ATTR_NAME": "line_no",
                "DOMAIN": "8",
                "SCALE": "0",
                "PRECISION": "10",
                "INDEXED": "1",
                "NON_NULL": "1",
                "SHARED": "0",
                "UNIQUE": "1",
                "DEFAULT": "NULL",
                "ATTR_ORDER": "3",
                "CLASS_NAME": "dba.pdoc175_lines_858db41c27",
                "SOURCE_CLASS": "dba.pdoc175_lines_858db41c27",
                "IS_KEY": "1",
                "REMARKS": ""
            },
            {
                "ATTR_NAME": "sku",
                "DOMAIN": "2",
                "SCALE": "0",
                "PRECISION": "24",
                "INDEXED": "1",
                "NON_NULL": "0",
                "SHARED": "0",
                "UNIQUE": "1",
                "DEFAULT": "NULL",
                "ATTR_ORDER": "4",
                "CLASS_NAME": "dba.pdoc175_lines_858db41c27",
                "SOURCE_CLASS": "dba.pdoc175_lines_858db41c27",
                "IS_KEY": "0",
                "REMARKS": ""
            },
            {
                "ATTR_NAME": "title",
                "DOMAIN": "2",
                "SCALE": "0",
                "PRECISION": "80",
                "INDEXED": "0",
                "NON_NULL": "0",
                "SHARED": "0",
                "UNIQUE": "0",
                "DEFAULT": "NULL",
                "ATTR_ORDER": "5",
                "CLASS_NAME": "dba.pdoc175_lines_858db41c27",
                "SOURCE_CLASS": "dba.pdoc175_lines_858db41c27",
                "IS_KEY": "0",
                "REMARKS": ""
            },
            {
                "ATTR_NAME": "qty",
                "DOMAIN": "8",
                "SCALE": "0",
                "PRECISION": "10",
                "INDEXED": "1",
                "NON_NULL": "0",
                "SHARED": "0",
                "UNIQUE": "0",
                "DEFAULT": "NULL",
                "ATTR_ORDER": "6",
                "CLASS_NAME": "dba.pdoc175_lines_858db41c27",
                "SOURCE_CLASS": "dba.pdoc175_lines_858db41c27",
                "IS_KEY": "0",
                "REMARKS": ""
            },
            {
                "ATTR_NAME": "price_cents",
                "DOMAIN": "8",
                "SCALE": "0",
                "PRECISION": "10",
                "INDEXED": "0",
                "NON_NULL": "0",
                "SHARED": "0",
                "UNIQUE": "0",
                "DEFAULT": "NULL",
                "ATTR_ORDER": "7",
                "CLASS_NAME": "dba.pdoc175_lines_858db41c27",
                "SOURCE_CLASS": "dba.pdoc175_lines_858db41c27",
                "IS_KEY": "0",
                "REMARKS": ""
            }
        ],
        "view": [
            {
                "QUERY_SPEC": "select [o].[warehouse], [o].[order_no], [o].[customer], [l].[line_no], [l].[title], [l].[qty], [l].[price_cents] from [dba.pdoc175_orders_3e63216241] [o] inner join [dba.pdoc175_lines_858db41c27] [l] on [l].[warehouse]=[o].[warehouse] and [l].[order_no]=[o].[order_no]"
            }
        ]
    },
    "selected_order": [
        {
            "customer": "Лаборатория",
            "line_no": 1,
            "title": "Кабель",
            "qty": 3,
            "line_total": 37650
        },
        {
            "customer": "Лаборатория",
            "line_no": 2,
            "title": "Хомут",
            "qty": 4,
            "line_total": 500
        }
    ],
    "sql_total": [
        {
            "positions": "2",
            "total_cents": "38150"
        }
    ],
    "import_plan": [
        [
            "step",
            "target",
            "key",
            "depends_on",
            "example"
        ],
        [
            "1",
            "orders",
            "warehouse,order_no",
            "-",
            "1\/501: Лаборатория"
        ],
        [
            "2",
            "order_lines",
            "warehouse,order_no,line_no",
            "orders(warehouse,order_no)",
            "1\/501\/1: Кабель, 3 шт."
        ],
        [
            "3",
            "order_view",
            "warehouse+order_no JOIN",
            "orders + order_lines",
            "Склад 1: 2 строки, 38150 коп."
        ]
    ],
    "metadata_used_for_destructive_changes": false
}

result.json содержит те же данные; metrics.json — проверки. Реквизиты входа в эти файлы не записываются.