splor-mg / dados-aux-classificadores

0 stars 0 forks source link

Problemas de chave primária duplicada decorrente de mudanças nas classificações #16

Open fjuniorr opened 4 months ago

fjuniorr commented 4 months ago

Durante https://github.com/splor-mg/dados-aux-classificadores/pull/13#issuecomment-2046050779 percebemos que a violação da restrição de chave primária para o recurso uo estava acontecendo em certa medida decorrente de classificações. Alguns examplos:

ano orgao_vinculacao_cod orgao_vinculacao_nome poder_cod poder_desc uo_cod uo_nome uo_sigla N
1995 1260 SECRETARIA DE ESTADO DA EDUCACAO 3 EXECUTIVO 2161 FUNDACAO EDUCACIONAL CAIO MARTINS FUCAM 2
1995 1260 SECRETARIA DE ESTADO DE EDUCACAO 3 EXECUTIVO 2161 FUNDACAO EDUCACIONAL CAIO MARTINS FUCAM 2
1996 1320 SECRETARIA DE ESTADO DA SAUDE 3 EXECUTIVO 1321 SECRETARIA DE ESTADO DE SAUDE SES 2
1996 1320 SECRETARIA DE ESTADO DE SAUDE 3 EXECUTIVO 1321 SECRETARIA DE ESTADO DE SAUDE SES 2
1996 1400 CORPO DE BOMBEIROS MILITAR DO ESTADO DE MINAS GERAIS 3 EXECUTIVO 1401 CORPO DE BOMBEIROS MILITAR DE MINAS GERAIS CBMMG 2
1996 1400 CORPO DE BOMBEIROS MILITAR DO ESTADO DE MINAS GERAIS 3 EXECUTIVO 1401 CORPO DE BOMBEIROS MILITAR DO ESTADO DE MINAS GERAIS CBMMG 2

A conclusão em conjunto é que nesse momento não faz sentido "escolher" qual é a representação correta, sendo suficiente escolher a primeira ou última ocorrência.

Para identificar as linhas duplicadas usei o snippet:

dp <- read_datapackage("datapackage.json")
dp$uo <- dp$uo[is.na(uo_desc) == TRUE]
dp$uo[, N := .N, .(ano, uo_cod)]
dp$uo[N > 1][order(ano, uo_cod)]
fjuniorr commented 4 months ago

As soluções gerais seriam: