Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Relacionamento de Tabelas.

Pessoal!

Sou novo aqui. Prazer em conhecê-los!

Tenho um problema ou dúvida que penso que é problema, referente ao relacionamento das tabelas. Se puderem me ajudar eu agradeço.

É que eu tenho 14 tabelas que deveriam se relacionar com uma 15ª, que possui uma lista de pessoas. Todas têm um campo que o nome é ID_PESSOA. Como eu tenho tido dificuldade de carregar os dados, que envolvem outras dezenas de tabelas me disseram que o problema é que todas as 15 tabelas estão tentando se relacionar mutuamente, replicando 15 vezes o relacionamento que deveria ser único de todas as 14 com uma única e não das 15 com cada uma das 15.

Vocês acham que este pode ser realmente um problema?

Se for, como me disseram, lendo o manual do QlikView vi que poderia desconectar os possíveis relacionamentos que não fossem aqueles vinculados a única tabela de pessoas. Porém, também não consegui saber como fazer isto.

De qualquer forma, obrigado!

Labels (1)
5 Replies
nicolett_yuri

Ola Rogério, tudo bom?

Confesso que não consegui compreender seu problema, acho melhor você tentar explica-lo com um exemplo de seus dados e imagens.

Vamos lá:

Antes de mais nada, queria reforçar a você como o QlikView faz o relacionamento entre tabelas, que diferentemente de um banco de dados que se deve declarar as chaves, no QlikView a ligação é realizada através do nome (ou apelido) dos campos. Se dois campos, de tabelas diferentes, possuírem o mesmo nome, eles serão considerados CHAVE entre essas duas tabelas, mesmo que um campo retorne abacaxi e o outro banana. Dessa forma, se você não quer que determinado campo seja CHAVE com outra tabela, basta renomea-lo no script do QlikView.

Exemplo:

Tabela_A:

LOAD

     CAMPO1,

     CAMPO2,

     CAMPO3

FROM Tabela_A.qvd (qvd);

Tabela_B:

LOAD

     CAMPO3,

     CAMPO4,

     CAMPO5

FROM Tabela_B.qvd (qvd);

A ligação entre essas duas tabelas, nesse momento será o CAMPO3, pois ele se repete nas duas tabelas. Caso a ligação correta seja, CAMPO1 (Tabela_A) com o CAMPO5 (Tabela_B), basta renomear o CAMPO5 da Tabela_B para CAMPO1, dessa forma:

Tabela_B:

LOAD

     CAMPO3,

     CAMPO4,

     CAMPO5 as CAMPO1

FROM Tabela_B.qvd (qvd);

Não sei bem se essa era a sua dúvida...

Not applicable
Author

Olá Yuri, obrigado pela atenção ao meu problema.

O exemplo que você sugeriu eu já havia entendido e também já havia colocado em prática.

A questão que eu pedi ajuda é um pouco diferente, e como disse, nem sei se é um problema ou se me orientaram inadequadamente quanto a outro problema, dizendo que a solução dizia respeito a este. Vou tentar explicar melhor:

No exemplo que você deu existem apenas 2 tabelas. No meu caso, existem 15 tabelas e em todas elas existe um campo comum chamado "ID_PESSOA", sendo que somente em uma das tabelas aparece o nome da pessoa em um campo chamado "nome" que vou chamar aqui de tabela 1. A dúvida é se havendo 15 tabelas que têm o mesmo campo chamado "ID_PESSOA", as 15 tabelas vão se relacionar mutuamente, gerando 15 X 15 = 225 relacionamentos, ou se haverão apenas 14 relacionamentos com a tabela 1, sem que haja nenhum relacionamento entre as próprias 14 tabelas? Pelo que me disseram, gerar 225 relacionamentos só para o campo "ID_PESSOA", conjuntamente com todos os outros relacionamentos do banco, ficaria muito pesado atrapalhando a performasse e o próprio carregamento dos dados. Se esta hipótese não for verdadeira e o relacionamento do campo "ID_PESSOA" seja apenas 14 vezes, ai não haveria dificuldade de fazer a carga dos dados.

Deu para entender desta vez?

Se puder me ajudar te agradeço!

nicolett_yuri

Rogerio, se a ligação dessas tabelas ocorrer somente com uma coluna, ID_PESSOA, você terá 14 relacionamentos com a tabela 1 e assim poderá utilizar o campo NOME para algum indicador e/ou filtro. Esse relacionamento não vai gerar nenhum tipo de problema para você.

Marcio_Campestrini
Specialist
Specialist

Bom dia Rogério

Se entendi o seu problema, segue um exemplo que pode ajudar a esclarecer melhor.

Márcio Rodrigo Campestrini
Not applicable
Author

Tenta usar uma tabela Link, que pode resolver esse problema de relacionamento.

Em vez das 15 estarem relacionadas, você criaria uma tabela única, que irá associar-se com as demais.