
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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!
- Tags:
- Group_Discussions


- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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...

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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!


- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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ê.


- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Bom dia Rogério
Se entendi o seu problema, segue um exemplo que pode ajudar a esclarecer melhor.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
