Crie uma tabela (
Staging
) com muitas colunas. Tem vazio (NULL
) colunas para parent_id
e ids para as crianças. Espero que as linhas 'curtas' coloquem nulos nas colunas filhas ausentes durante o
LOAD DATA
. INSERT .. SELECT ..
para obter o parent
e parent_detail
para os Parents
tabela. Retire os ids
de Parents
em Staging.parent_id
. Os detalhes sobre os dois SQLs para estes estão em http://mysql.rjweb.org /doc.php/staging_table#normalization
Agora faça algo semelhante para cada conjunto de colunas "filho" possível:
child1
e child1_detail
(possivelmente par NULL) e o atualmente NULL child1_id
. Idem para child2*, etc. Observe que ao preencher o Children
tabela, você já tem parent_id
acessível. Essa é uma maneira totalmente SQL de fazer a tarefa. É apenas um pouco menos confuso do que escrever código Perl/PHP/Java/VB/qualquer que seja para fazer a tarefa.