Създайте таблица (Staging
) с много колони. Да има празно (NULL
) колони за parent_id
и идентификатори за децата.
Надяваме се, че „късите“ редове ще поставят нулеви стойности в липсващите дъщерни колони по време на LOAD DATA
.
INSERT .. SELECT ..
за да получите parent
и parent_detail
в Parents
маса. Издърпайте обратно ids
от Parents
в Staging.parent_id
. Подробностите за двата SQL-а за тях са в http://mysql.rjweb.org /doc.php/staging_table#normalization
Сега направете нещо подобно за всеки възможен "детски" набор от колони:child1
и child1_detail
(евентуално двойка NULL) и текущият NULL child1_id
. Същото за child2* и т.н. Имайте предвид, че когато попълвате Children
таблица, вече имате parent_id
наличен.
Това е изцяло SQL начин за изпълнение на задачата. Това е само малко по-малко разхвърляно от писането на Perl/PHP/Java/VB/какъвто и да е код за изпълнение на задачата.